Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Nodejs Socket聊天应用:需要显示在线和离线状态_Node.js_Sockets_Chat - Fatal编程技术网

Node.js Nodejs Socket聊天应用:需要显示在线和离线状态

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

我刚刚用Socket和nodejs创建了聊天应用程序

我显示了连接套接字的所有用户。在聊天室的右侧

现在我需要用户weather离线或在线的状态

这里是我使用的代码

index.html

在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,列表将为空。

在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,列表将为空