2014-01-14 87 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))立即終止連接。