如何检测socket.io上的断开连接?

我在我的项目中使用socket.io。 我打开了重新连接function。 我想如果用户断开与服务器显示警报(您的互联网连接丢失,尝试重新连接)。 如果用户再次重新连接,我想显示一个更多的警报(不要担心,你连接)。

我该怎么做?

       

网上收集的解决方案 "如何检测socket.io上的断开连接?"

检测您使用的客户端

// CLIENT CODE socket.on('disconnect', function(){ // Do stuff (probably some jQuery) }); 

这与node.js服务器的代码完全相同。

如果您因为某种原因想要检测到用户断开连接并将其显示给其他用户,则需要使用服务器来检测该用户离开的信息,然后使用类似以下内容向其他用户发送消息:

 socket.on('disconnect', function(){ socket.broadcast.to(roomName).emit('user_leave', {user_name: "johnjoe123"}); }); 

希望这可以帮助

socket.io有一个disconnect事件,把它放在你的connect块里面:

 socket.on('disconnect', function () { //do stuff }); 

我这样处理这个问题。 我已经在服务器上调用心跳的客户端上发射发送者。

 socket.on('heartbeat', function() { // console.log('heartbeat called!'); hbeat[socket.id] = Date.now(); setTimeout(function() { var now = Date.now(); if (now - hbeat[socket.id] > 5000) { console.log('this socket id will be closed ' + socket.id); if (addedUser) { --onlineUsers; removeFromLobby(socket.id); try { // this is the most important part io.sockets.connected[socket.id].disconnect(); } catch (error) { console.log(error) } } } now = null; }, 6000); }); 

我发现这个代码函数调用:

 io.sockets.connected[socket.id].disconnect();