3
我正在創建一個Web儀表板,它將顯示我們的測試環境的狀態。可靠地統計到SignalR集線器的客戶端連接數
我使用集線器將瀏覽器連接到服務器,並具有後臺任務來輪詢環境的狀態。如果至少有一個客戶端連接,我只想執行此檢查。
我的樞紐看起來有點像這樣:
public class StatusHub : Hub
{
private static int connectionCount = 0;
public override Task OnConnected()
{
Interlocked.Increment(ref connectionCount);
return base.OnConnected();
}
public override Task OnReconnected()
{
Interlocked.Increment(ref connectionCount);
return base.OnReconnected();
}
public override Task OnDisconnected()
{
Interlocked.Decrement(ref connectionCount);
return base.OnDisconnected();
}
// other useful stuff
}
這主要工作,但有時OnConnected叫,但OnDisconnected不是。
一個特定的情況是,如果我打開chrome並輸入頁面的地址,但實際上沒有導航到它。看起來Chrome是預先抓取頁面並連接的,但從不斷開。
所以兩個問題:
- 這是一個很好的方法來計算連接(我永遠不會在Web場環境中運行)?
- 這些來自Chrome的殭屍連接最終是否會超時(我嘗試將超時設置爲非常低,但仍然沒有斷開連接)?