我目前正在聊天。
如果客户端连接不稳定且套接字连接丢失,服务器会将其识别为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 );
}