当我离开Silverlight中的页面时,我在Javascript中调用一个包含以下内容的函数:
。$ connection.hub.stop();
在我的Hub类中,我重写了OnDisconnected()
通常,OnDisconnected事件会触发,但有时它不会触发,并且在超时并触发OnDisconnected之前需要花费不同的时间。
离开创建连接的页面后,Fiddler显示原始signalr / connect?...请求没有响应代码(列显示' - '和Body列显示' -1) - 不应该返回200?
如果我导航回页面,则会建立新连接。
有时发出signalr / abort请求,传递相同的connectionToken,但原始连接请求保持不变(打开)。
为什么每次在集线器中都会立即触发OnDisconnected事件,因为连接在客户端中显式停止?
使用SignalR 1.2.1 .NET 4.0
阅读the documentation后,我不相信这适用于我的情况:
在某些情况下,OnDisconnected方法不会被调用,例如服务器关闭或App Domain被回收时。当另一台服务器上线或App Domain完成其回收时,一些客户端可能能够重新连接并触发OnReconnected事件。