【发布时间】:2023-03-24 16:07:01
【问题描述】:
我正在尝试创建一个聊天室,其中连接用户的姓名显示在“在线用户”部分。
下面的代码会将每个用户的名字添加到一个数组中并显示数组的内容。
但是,如果用户离开,他们的用户名不会从数组中删除。如果我弹出数组,它可能不会删除正确的用户名。这让我觉得我应该以某种方式将 socket-id 与给定的用户名相关联,并创建一个断开事件,从数组中删除正确的用户名,并显示数组的更新版本。我怎样才能改变这段代码来合并它?
script.js:
var user = user;
if (!user) {
user = prompt('Please choose a username:');
if (!user) {
alert('Your name has been set to "Anonymous"');
user = "Anonymous"
items.push(user);
} else {
alert('Your name has been set to "'+ user +'"');
}
}
socket.emit('theitems', user);
socket.on('theitems', function (data) {
$('.dispUser').html(data);
console.log(data);
});
server.js:
var newitems = [];
server(socket('theitems', ctx => { newitems.push(ctx.data); console.log(ctx.data); ctx.io.emit('theitems', newitems); }));
【问题讨论】:
标签: javascript arrays node.js express socket.io