SignalR hub在页面重新加载后OnDisconnected在不同浏览器中的触发时间

时间:2013-11-01 16:35:23

标签: asp.net-mvc signalr

我遇到了这个情况,当我的集线器的OnDisconnected事件发生在Chrome浏览器页面刷新的asp.net mvc操作之后,但是对于FireFox和IE,行为不同,事件在相关的asp之前触发.net mvc动作。这有什么固定的规则吗?

订单对我来说很重要,至少我希望它对所有浏览器都一样,有没有办法确保订单相同?

1 个答案:

答案 0 :(得分:2)

MVC行动与否无法确保订单。

原因如下:当用户尝试离开具有活动SignalR连接的页面时,SignalR将尝试“尽力而为”尝试通知服务器客户端连接将被停止。如果我们的“尽力而为”尝试无法到达服务器,服务器将在稍后的可配置“DisconnectTimeout”之后“忘记”用户,此时将触发OnDisconnected事件。如果我们的“尽力而为”尝试成功,OnDisconnected事件将立即触发。

当用户离开页面并依赖于客户端时,看到此行为是运行的,它可能不一致。

希望这有帮助!