我正在制作聊天应用程序,我想添加一个选项来检查用户是在线还是离线。
假设我有一系列名称(它是未来数据库的当前替代品),表示为“聊天中的所有用户都存在”。
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()
的函数,它将更新用户的状态,因此如果连接了我的用户'数据库'中的昵称的人,他的状态应该是在线的,并且反之亦然。
答案 0 :(得分:0)
只需在disconnect
事件中从数组中删除用户。