我有以下删节代码:
io.on('connection', function(client) {
client.uuid = uuid.v4();
// add client object to server...
console.log('socket.io:: client connected ' + client.uuid );
client.on('disconnect', function() {
console.log('socket.io:: client disconnected ' + client.uuid );
// remove client object from server...
});
});
如果我在浏览器中打开此页面,一切似乎都很好。如果我刷新页面,则会触发disconnect
然后connection
。但是,如果我足够快地刷新,有时候disconnect
没有被调用,因此客户端数据不会从服务器中清除。有没有办法保护这个?
修改:reword reconnect
- > connection
答案 0 :(得分:1)
正如adeneo所述,socket.io具有心跳,可自动检查客户端是否仍然连接。如果检测到客户端实际消失,则会触发disconnect
代码。复制原始问题后,我尝试打开服务器,大约30秒后,“死”客户端被删除。所以要解决这个问题,你只需要等待。 Socket.io自己处理所有事情。