Я реализую базовый чат в стиле Slack, и я хочу дать пользователям возможность отправлять друг другу сообщения в частном порядке.
Когда пользователь отправляет запрос на приватный чат другому пользователю, а другой принимает, в браузере каждого пользователя должна появиться кнопка с именем другого пользователя.
Проблема в том, что в данный момент кнопка появляется в интерфейсе каждого пользователя, но только пользователь, отправивший запрос (пользователь 1), получает кнопку с именем другого пользователя, тогда как другой получает только кнопку без текста. в этом. Код выглядит следующим образом:
socket.on("setting up private chat buttons", data => {
privateChannelButton = document.createElement('button');
privateChannelButton.className = "new-button btn btn-dark";
if (localStorage.getItem('userName') == data["user 1"]){
privateChannelButton.innerHTML = data["user 2"];
console.log("case 1 happened");
}
else if (localStorage.getItem('userName') == data["user2"]) {
privateChannelButton.innerHTML = data["user 1"];
console.log("case 2 happened");
}
document.querySelector('#channels').appendChild(privateChannelButton);
});
Если я посмотрю на то, что выводит консоль, то в основном это всегда «случай 1», как будто, как только одно из браузеров оценивает первое условие как true, оба переходят к следующему блоку кода, который это добавление кнопки. Почему это?