NODE.js& socket.io:如何检查用户是否在线/离线?

时间:2015-10-17 11:57:45

标签: javascript ios node.js

我正在制作聊天应用程序,我想添加一个选项来检查用户是在线还是离线。

假设我有一系列名称(它是未来数据库的当前替代品),表示为“聊天中的所有用户都存在”。

var users = {user1,user2,user3,...usern};

而且,假设我有一些用于输入用户名的html表单

<p>Enter your username</p>
<p id="nickError"></p>
<form id="setNick">
    <input size="35" id="nickname" maxlength="25"></input>
    <button>Chat!</button>
</form>

我有逻辑和代码来检查输入区域中的名称是否在users数组中。此外,我有一个基本的聊天,你可以在全球或私下谈话。

我的server.js的一部分:

io.on('connection', function(socket){

    socket.on('new user',function(data,callback){
        if (data in users)
        {
        callback(false);
        } else{
            callback(true);
            socket.nickname = data;
            users[socket.nickname] = socket; 
            updateNicknames();
            io.emit('user joined', data);
        }
    });

};

我想创建一个名为updateNicknames()的函数,它将更新用户的状态,因此如果连接了我的用户'数据库'中的昵称的人,他的状态应该是在线的,并且反之亦然。

1 个答案:

答案 0 :(得分:0)

只需在disconnect事件中从数组中删除用户。