SocketIO检测断开

时间:2018-07-11 02:41:21

标签: node.js socket.io

我最近一直在尝试在nodejs中使用socketio。 我知道这个问题已经问过了,但是至少在我关心的问题上,我会说些什么。

基本上,我的问题是,我已经创建了实时实时聊天并能够确定是否有人加入,但仅限于此。我想要的是能够检测到注销的特定用户。注销是指关闭窗口(因为我没有合并任何登录或使用实际的凭据(例如用户名或密码)注销)。

这是我的chat.js示例代码:

// Listen for Events
socket.on('chat', function(data){
    feedback.innerHTML = "";
    output.innerHTML += '<p><strong>' + data.handle + ': </strong><br/>' + data.message + '</p>';
});

socket.on('typing', function(data){
    feedback.innerHTML = '<p><em>' + data + ' is typing a message...</em></p>';
});

socket.on('user joined', function(data){
  output.innerHTML += '<p><strong>' + data.username + ' joined! ' + '@' + data.time + '</strong></p><br/>';
});

现在这是我的index.js代码:

socket.on('chat', function(data){
    data.handle = '(' + (!userName ? (ipAdd + noUser) : userName) + ') ' + data.handle + ' @' + userDate;
    io.sockets.emit('chat', data);
});

socket.on('typing', function(data){     
    socket.broadcast.emit('typing', data);
}); 

socket.broadcast.emit('user joined', {
    username: (!userName ? (ipAdd + noUser) : userName),
    time: userDate
});

如果您对我的设置有点困惑,我可以使用此链接作为参考: https://www.youtube.com/watch?v=vQjiN8Qgs3c

请参阅我提供的链接的教程1至5。

谢谢

1 个答案:

答案 0 :(得分:0)

如Li357(请回答他对我的上述问题的评论)所回答的那样,事件断开连接将使您实时检测到断开连接的人。