Разъем.отображение ввода-вывода чертежа в соответствующей комнате

#canvas #socket.io #drawing #chat

Вопрос:

первый раз здесь. Я пытался чему — то научиться.ввод-вывод и, следуя некоторым видео, я дошел до того, что могу создать простое приложение для рисования с помощью чатов. Проблема в том, что рисунок отображается в каждой комнате, а не в той, в которой вы сейчас находитесь, но мой чат работает правильно. Я знаю, в чем проблема, но не знаю, как ее решить.

Я не смог правильно вставить код, поэтому вместо этого я помещу его в виде фрагмента кода.

 function newConnection(socket) {  socket.on('chat message', (room, msg) =gt; {  io.to(room).emit('chat message', { msg: msg, name: rooms[room].users[socket.id] });  });  socket.on('new-user', (room, name) =gt; {  socket.join(room)  rooms[room].users[socket.id] = name;  socket.broadcast.to(room).emit('user-connected', name);  });  socket.on('disconnect', () =gt; {  getUserRooms(socket).forEach(room =gt; {  socket.broadcast.to(room).emit('user-disconnected', rooms[room].users[socket.id])  delete rooms[room].users[socket.id]  })  })  socket.on('mouse', (data) =gt; {  socket.broadcast.emit('mouseMsg', data)  })    /*  socket.on('mouse', (data,room) =gt; {  socket.broadcast.to(room).emit('mouseMsg', data)  }  */    function getUserRooms(socket) {  return Object.entries(rooms).reduce((names, [name, room]) =gt; {  if (room.users[socket.id] != null) names.push(name)  return names  }, [])  } } 

Виновником, я думаю, является событие socket.on(«мышь»). Если я оставлю это так, рисунок будет отправлен всем во всех комнатах, но если, например, я добавлю к нему переменную room, он нигде не будет отображаться? Может быть, я делаю это неправильно (посмотрите на комментарий). При необходимости я могу показать больше кода. Спасибо вам за вашу помощь!