2016-01-29 50 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