检测客户端的断开连接WebSocket

时间:2017-04-10 08:32:25

标签: javascript node.js web websocket

我正在使用WebSocket&的NodeJS。我可以检测用户的连接并显示它,但我无法检测到用户的断开连接。方法 on('close',function()....)在关闭服务器时发生,而不是在用户关闭选项卡时发生。我能做什么?我真的不知道现在该怎么做。谢谢你们!希望你能帮助我。

3 个答案:

答案 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
  });
});