Я пытаюсь создать чат-комнату, где имена подключенных пользователей отображаются в разделе «Пользователи в сети».
Приведенный ниже код добавит имя каждого пользователя в массив и отобразит его содержимое.
Однако, если пользователь уходит, его имя пользователя не удаляется из массива. Если я вытолкну массив, он, скорее всего, не удалит правильное имя пользователя. Это заставляет меня думать, что я должен каким-то образом связать идентификатор сокета с заданным именем пользователя и создать событие отключения, которое удаляет правильное имя пользователя из массива и отображает обновленную версию массива. Как я мог изменить этот код, чтобы включить это?
скрипт. 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);
});
сервер. js:
var newitems = [];
server(socket('theitems', ctx => { newitems.push(ctx.data); console.log(ctx.data); ctx.io.emit('theitems', newitems); }));