我正在使用WebSocket&的NodeJS。我可以检测用户的连接并显示它,但我无法检测到用户的断开连接。方法 on('close',function()....)在关闭服务器时发生,而不是在用户关闭选项卡时发生。我能做什么?我真的不知道现在该怎么做。谢谢你们!希望你能帮助我。
答案 0 :(得分:3)
要检测套接字断开,我使用此方法可以正常工作:
socket.once('disconnect', function () {
// socket is disconnected
});
或者
socket.on('disconnect', function () {
// socket is disconnected
});
希望它有所帮助。
答案 1 :(得分:1)
您应该在客户端到服务器之间(每20-30秒)实现心跳请求(在websocket连接内)并限制连接到某个时段(40-50秒) - 这可以在Web服务器中完成(甚至可以在负载均衡器设置中完成) )。
当服务器发现没有心跳请求时,表示此连接已断开 - 客户端关闭选项卡或其他内容。
已更新:哦!似乎socket.io有心跳实现,所以我的回答有点普遍。
答案 2 :(得分:0)
io.sockets.on('connection',function(socket){
socket.on('disconnect', function(){
// Your stuff here
});
});