Я пытаюсь отобразить имена пользователей всех подключенных клиентов в моей комнате чата, добавив их имена пользователей в массив. В настоящее время мой код просто обновит список пользователей, указав самое последнее имя пользователя, которое присоединилось, а не добавит имя пользователя в массив, что заставляет меня думать, что массив на самом деле не создается так, как я ожидал?
скрипт. js:
var items = [];
var user = user;
if (!user) {
user = prompt('Please choose a username:');
items.push(user);
socket.emit('theitems', {
items: items
});
if (!user) {
alert('Your name has been set to "Anonymous"');
user = "Anonymous"
items.push(user);
} else {
alert('Your name has been set to "'+ user +'"');
}
}
console.log(items);
socket.on('theitems', function (data) {
$('.dispUser').html(data.items);
});
индекс. js
server(socket('theitems', ctx => { console.log(ctx.data); ctx.io.emit('theitems', ctx.data); }));
Обновлен код, который использует сервер как «главный массив».
Этот код (+ некоторые из вышеперечисленных) решил мою проблему.
index. js (server):
var newitems = [];
server(socket('theitems', ctx => { newitems.push(ctx.data); console.log(ctx.data); ctx.io.emit('theitems', newitems); }));
script. js (client) :
socket.emit('theitems', user);
socket.on('theitems', function (data) {
$('.dispUser').html(data);
console.log(data);
});