2016-12-01 70 views
0

我試圖將Disconnect Timeout設置爲默認30s的較高值。 網絡上的所有例子都是以JS爲導向的。控制檯應用程序SignalR客戶端斷開連接超時

 var hubConnection = new HubConnection("http://localhost:8087"); 
     var testHubProxy = hubConnection.CreateHubProxy("TestHub"); 

錯誤:System.TimeoutException:無法的00:00:30的配置的超時內重新連接,斷開。

這不起作用:

 GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(35); 

更新: 看起來DisconnectTimeout需要在服務器端設置!?

禁止不同的客戶端有不同的Disconnect Timeout的原因是什麼?

回答

1

斷開超時配置在服務器端。主要的原因可能如下:

  • 我們知道,服務器可能需要一些的N次單位迴應,以使所有客戶端可能會心知肚明。
  • 服務器應該是pinging定期連接的客戶端。因此,服務器知道客戶端連接,並且可以管理其他集線器並從連接池中消除過期的連接。
  • 客戶端不應該設置斷開連接超時,因爲它不知道它什麼時候可以關閉,例如,互聯網意外地在客戶端關閉,而客戶端無法告訴服務器我不會再次連接到您。是的,但是我們在客戶端有一些事件告訴它,不再連接到信號中心。請參閱重新連接和斷開連接的事件。

摘要:

斷開連接超時是告知其客戶機沒有連接了,即使它斷開可恥服務器。