我遇到了这样的情况:在 Chrome 浏览器的页面刷新上的 asp.net mvc 操作之后发生我的集线器的 OnDisconnected 事件,但是对于 FireFox 和 IE,行为有所不同,该事件在相关的 asp.net mvc 操作之前触发。这有什么固定的规则吗?
顺序对我来说很重要,至少我希望所有浏览器都一样,有什么方法可以确保相同的顺序吗?
最佳答案
无论是否采取 MVC 操作,您都无法确保顺序。
原因如下:当用户尝试离开具有事件 SignalR 连接的页面时,SignalR 将尽最大努力通知服务器客户端连接将停止。如果我们的“尽最大努力”尝试未能到达服务器,服务器将在可配置的“DisconnectTimeout”之后“忘记”用户,此时 OnDisconnected 事件将触发。如果我们的“尽力”尝试成功,OnDisconnected 事件将立即触发。
由于此行为是在用户离开页面时运行的,并且依赖于客户端,因此可能会不一致。
希望这有帮助!
关于asp.net-mvc - 页面重新加载后,SignalR hub OnDisconnected 在不同浏览器中的触发时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731132/