как сделать так, чтобы сообщения, которые приходили в общий чат, не отображались в приватном?
При коннекте, юзер попадает в комнату общего чата, на клиенте, при нажатии на юзера, создается комната приватного чата или юзер присоединяется к ней. Если пользователи общаются в приватном чате, то всё ок. Юзеры в общем чате не видят сообщений. Но если писать в общий чат, то юзеры в приватном увидят их. Подскажите, пожалуйста, как сделать, так, чтобы можно было отслеживать сообщения в общем чате и не получать их в приватном?
let userOnline = {};
let chat = {};
io.on("connection", function(socket) {
socket.join("public");
socket.on("start", function() {
socket.join("public");
console.log(io.sockets.adapter.rooms);
});
socket.on("login", function(data) {
socket.broadcast.emit("login", { online: data.userName });
userOnline[socket.id] = data.userName;
io.emit("users", userOnline);
});
socket.on("disconnect", function() {
delete userOnline[socket.id];
io.emit("users", userOnline);
});
socket.on("chat message", function(data) {
if (data.user) {
io.in(chat.id).emit("chat message", { msg: data.mess, name: data.name });
} else {
io.sockets.in("public").emit("chat message", { msg: data.mess, name: data.name });
}
});
socket.on("join", function(data) {
if (chat.id !== data.from + data.to && chat.id !== data.to + data.from) {
chat = data;
socket.join(chat.id);
} else {
socket.join(data.to + data.from);
}
console.log(io.sockets.adapter.rooms);
});
});