簡體   English   中英

Socket.IO:檢測斷開的套接字

[英]Socket.IO: Detect disconnected sockets

我有一個socket.io服務器/客戶端。 client安全斷開連接時,在服務器端,線路

socket.on('disconnect', function() {

});

叫做。

但是,如果客戶端服務器崩潰,則永遠不會調用socket.on('disconnect') 我知道這一點是因為我遞歸地打印出wss.sockets.connected.length並且數量不會減少。

如何檢查服務器上是否發生了此類崩潰?

您最終應該收到斷開事件,因為socket.io具有心跳機制。 我認為沒有其他方法可以檢測到客戶端崩潰。 確實需要一些時間。

心跳在這里已得到很好的解釋:

使用socketio心跳的優點/缺點

當服務器調用disconnect()時,給出斷開連接處理程序的原因是:io服務器斷開連接。 而當服務器停止時,原因是:傳輸關閉。 因此,您可以通過添加條件來進行檢查:

socket.on('disconnect', function(reason) {
  if (reason === 'transport close'){
    console.log('Server Crashed');
  } 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM