2014-01-14 176 views
1

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

我使用SignalR,版本2.0.1(但问题在2.0.0中重现),用于集成到ASP.NET网站的网络聊天。我有一个.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() { 
    ... 
} 

问题重现谷歌浏览器的最后版本,但在IE和Mozilla正常工作。 SignalR出现如此奇怪的行为的原因是什么?我该如何避免它?

+1

仅供参考:https://github.com/SignalR/SignalR/issues/2653 –

+0

@Jason Evans,感谢您的参考,但我认为这不是我的情况,因为我的问题与Javascript客户端有关,(不是.NET客户端)。 –

+0

即使你只有1-2个客户,它是否缓慢? –

回答

0

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

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

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

0

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