客户端断开连接后,服务器如何知道何时重新连接?

时间:2016-11-14 11:43:41

标签: javascript node.js socket.io

我目前正在聊天。

如果客户端连接不稳定且套接字连接丢失,服务器会将其识别为socket.disconnect并从聊天室中删除客户端。

然后,当重新连接时,客户端会自动退出房间。

如何解决此问题?

这个想法是在断开连接时创建一个setTimeout来保持客户端20秒从聊天室中删除,然后在重新连接时删除setTimeout。

执行此操作时,您如何知道客户端已重新连接?

重新连接时socket.id会改变吗?

如果socket.id没有改变,因为我基于socket.id创建了一个特定于用户的数组,我想我们现在可以解决这个问题了。

socket.on('reconnect', function() {
   if( typeof event_timeout[socket.id] !== "undefined" )
     clearTimeout(event_timeout[socket.id]);
}
socket.on('disconnect', function() {
   event_timeout[socket.id] = setTimeout( exit_chat, 20000 ); 
}

0 个答案:

没有答案