我最近一直在尝试在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。
谢谢
答案 0 :(得分:0)
如Li357(请回答他对我的上述问题的评论)所回答的那样,事件断开连接将使您实时检测到断开连接的人。