Signalr 信号器中未调用onDisconnected方法

Signalr 信号器中未调用onDisconnected方法,signalr,Signalr,使用信号器处理聊天应用程序。 onDisconnected()会在一段时间后调用,但不会在用户关闭或注销时立即在chrome浏览器中调用。 但在Firefox浏览器中,它确实会立即被调用 使用后 这段代码是用JS编写的 window.onbeforeunload = function (e) { $.connection.hub.stop(); }; 现在它在Chrome浏览器中工作 但是,当用户从Firefox浏览器注销时,on

使用信号器处理聊天应用程序。 onDisconnected()会在一段时间后调用,但不会在用户关闭或注销时立即在chrome浏览器中调用。 但在Firefox浏览器中,它确实会立即被调用

使用后 这段代码是用JS编写的

 window.onbeforeunload = function (e) {     
               $.connection.hub.stop();
           };
现在它在Chrome浏览器中工作 但是,当用户从Firefox浏览器注销时,onDisconnected()很晚才被调用

请帮忙 找不到任何已工作的,因此它在所有浏览器中都工作


谢谢你

如果你在谷歌上搜索,你会发现很多结果(有几个就在这里)都声明不使用window.onbeforeunload。为“beforeunload”添加事件监听器似乎是一个方向-我使用了事件监听器,但在两种浏览器中行为不同。由于chrome需要时间,而且在Mozilla中,它会立即完成。您可能需要检查文档以更改断开连接超时,默认为30秒。这是信号器在引发断开连接事件之前等待的时间。这可能是因为Chrome没有正确触发事件,并且断开连接不正常,但在客户端断开了连接。服务器端在30秒内不会做任何事情。文档-是的,它等待30秒才能断开连接。