停止SignalR连接很慢

时间:2014-01-14 17:18:38

标签: asp.net signalr

Javascript客户端的Stoping SignalR连接速度很慢(大约30秒)。

我使用SignalR,版本2.0.1(但在2.0.0中重现的问题)用于集成到ASP.NET站点的webchat。我有一个.NET SignalR客户端(出于其他原因)和许多JS客户端(聊天客户端)。我的测试用例非常简单。我想禁用ASP.NET页面上的聊天。出于这个原因,我尝试使用下一个代码停止SignalR连接:

$.connection.hub.stop();

但onDisconnected方法(在集线器上)仅在30秒后调用。我认为连接是通过断开连接超时而不是Javascript代码停止的。我默认使用LongPolling运输。

var initObject = { transport: ["longPolling", "webSockets", "foreverFrame", "serverSentEvents"] };
$.connection.hub.start(initObject).done(function () {
    ...
}

问题在Google Chrome的最新版本中重现,但在IE和Mozilla中运行良好。 SignalR如此奇怪的行为有什么原因,我该如何避免呢?

3 个答案:

答案 0 :(得分:0)

conn.disconnect();
conn.stop();
hub.subscribe(null);
conn = null;
hub= null;

尝试这个,让我知道它是否有效。虽然它在android中工作。

答案 1 :(得分:0)

通过将SignalR版本更新为2.0.3来解决问题。

答案 2 :(得分:0)

对于遇到此问题的其他人,只需使用conn.Stop(new TimeSpan(0))即可终止连接。