2016-01-29 73 views
1

服務器如何知道客戶端突然斷開因SocketIO中的網絡/電源故障而死亡/斷開連接。由於客戶端沒有任何機會向服務器發送斷開連接事件......有什麼辦法可以解決這個問題嗎?SocketIO網絡/電源故障問題

+0

socket.io超時並將引發斷開事件:http://stackoverflow.com/questions/26025628/node-js-socket-io-1-0-timeout-event – slebetman

+0

.on(disconnect) – amanuel2

回答

2

Socket.io具有內部保活機制。如果客戶端突然中斷,服務器不會立即知道。相反,當下一個保持活動機制事件觸發並且沒有響應將在時限內到達時,服務器將觸發該客戶端的斷開連接事件。服務器檢測斷開連接的客戶端所用的時間受保持活動輪詢間隔和超時限制的影響。

您可以使用'pingInterval'和'pingTimeout'更改這些值,這將更改engine.io的配置方式。

+0

是啊,非常感謝答案。我首先使用** websocket **,在其上構建了** socketIO **。我想如果有任何其他方式比心跳機制,但謝謝...你的答案幫了很多:) – Prataksha