Node.js Nodejs Socket聊天应用:需要显示在线和离线状态
我刚刚用Socket和nodejs创建了聊天应用程序 我显示了连接套接字的所有用户。在聊天室的右侧 现在我需要用户weather离线或在线的状态 这里是我使用的代码 index.html 在app.js中: 通过以下方法更改昵称数组:Node.js Nodejs Socket聊天应用:需要显示在线和离线状态,node.js,sockets,chat,Node.js,Sockets,Chat,我刚刚用Socket和nodejs创建了聊天应用程序 我显示了连接套接字的所有用户。在聊天室的右侧 现在我需要用户weather离线或在线的状态 这里是我使用的代码 index.html 在app.js中: 通过以下方法更改昵称数组: nicknames = {} 在“新用户”事件中,我们需要对您的代码进行一些更改,如下所示: if (nicknames.hasOwnProperty(data)){ //We check if data received is in nicknames arr
nicknames = {}
在“新用户”事件中,我们需要对您的代码进行一些更改,如下所示:
if (nicknames.hasOwnProperty(data)){ //We check if data received is in nicknames array
callback(false);
} else{
callback(true);
socket.nickname = data;
nicknames[socket.nickname] = {online: true}; //Then we put an object with a variable online
console.log('user connected: ' + socket.nickname);
// io.emit('update_personal', nicknames + ': Online');
updateNicknames();
}
之后,您需要修改断开连接事件:
socket.on('disconnect', function(data){
console.log('user disconnected:' + socket.nickname )
if(!socket.nickname) return;
nicknames[socket.nickname].online = false; //We dont splie nickname from array but change online state to false
updateNicknames();
});
在index.html中:
然后运行app.js并刷新index.html
请小心,您的脱机列表不会保存到数据库或文本文件中,因此如果重新启动app.js,列表将为空。在app.js中:
通过以下方法更改昵称数组:
nicknames = {}
在“新用户”事件中,我们需要对您的代码进行一些更改,如下所示:
if (nicknames.hasOwnProperty(data)){ //We check if data received is in nicknames array
callback(false);
} else{
callback(true);
socket.nickname = data;
nicknames[socket.nickname] = {online: true}; //Then we put an object with a variable online
console.log('user connected: ' + socket.nickname);
// io.emit('update_personal', nicknames + ': Online');
updateNicknames();
}
之后,您需要修改断开连接事件:
socket.on('disconnect', function(data){
console.log('user disconnected:' + socket.nickname )
if(!socket.nickname) return;
nicknames[socket.nickname].online = false; //We dont splie nickname from array but change online state to false
updateNicknames();
});
在index.html中:
然后运行app.js并刷新index.html
请小心,您的脱机列表不会保存到数据库或文本文件中,所以如果重新启动app.js,列表将为空