【发布时间】:2017-09-15 09:06:54
【问题描述】:
问题:
SignalR 没有在我的网络服务器上触发 OnDisconnected。这很简单,但不是射击。我试过了:
- 关闭浏览器窗口
- 导航离开
- 重新加载
- 从客户端触发 SignalR 连接上的 stop()。
public override Task OnDisconnected(bool stopCalled) {
LogUtil.LogInfo("Disconn");
return base.OnDisconnected(stopCalled);
}
我正在使用 SignalR 2.2.0.0,OnConnected 工作正常。
我已尝试建议最后一次调用客户端以确保连接已启动并正在运行。
我搜索了所有论坛、SO、GIT 等,但没有解决我的问题。
【问题讨论】:
-
我有相同的版本,但断开连接大约需要 40 秒。 (该事件会在 40 秒后触发。)原因与在网络速度较慢的情况下尝试重新连接到用户的功能有关 - 不过我记不太清了。关闭浏览器后是否等待了足够的时间?顺便说一句,您使用的是哪个浏览器?
-
我已经等了 30 分钟。 Chrome 版本 60.0.3112.113
-
我也有 chrome 60。关闭选项卡,重新加载它或在客户端调用停止应该足够了。你能发布 hub.connect 和 hub.stop 相关代码吗?另外,尝试在客户端上添加
stateChanged事件并查看其日志,以防发生奇怪的事情。 -
SignalR 状态从:断开连接到:正在连接 -> SignalR 状态从:连接到:连接 -> onmessage { "msg": "Users online: 2" } -> -> --Pressing重新加载 -> SignalR 状态从:连接到:断开连接 -> SignalR 状态从:断开连接到:正在连接 -> SignalR 状态从:连接到:连接
-
嗯,正如预期的那样......所以当状态变为断开连接时它不会触发服务器事件吗?