我在我的项目中使用socket.io。我打开了重新连接功能。我想如果用户断开与服务器的连接显示警报(您的互联网连接丢失。尝试重新连接)。如果用户再次重新连接,我想再显示一个警告(别担心,你已连接)。
我该怎么做?
答案 0 :(得分:20)
要在客户端上检测,请使用
// CLIENT CODE
socket.on('disconnect', function(){
// Do stuff (probably some jQuery)
});
这与node.js服务器的代码完全相同。
如果您出于某种原因想要检测用户是否断开连接并将其显示给其他用户,您将需要使用服务器一来检测该人离开,然后使用以下内容向其他人发回消息: / p>
socket.on('disconnect', function(){
socket.broadcast.to(roomName).emit('user_leave', {user_name: "johnjoe123"});
});
希望这有帮助
答案 1 :(得分:9)
socket.io
发生disconnect
事件,将其放入connect
区块内:
socket.on('disconnect', function () {
//do stuff
});
答案 2 :(得分:0)
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();