【发布时间】:2018-05-07 05:28:44
【问题描述】:
看来我不是唯一一个在这个问题上苦苦挣扎的人。
但是我正在尝试编写一个简单的聊天应用程序。当用户加入房间时,roomID 保存在 socket.room.id 中。这只是一个数字。
当他们加入/更换房间时,我有以下代码:
// Notify the rooms
if(previousRoomID) io.to(previousRoomID).emit("activity-notification","<b>"+socket.me.name+"</b> has left the room " + previousRoomID);
io.to(socket.room.id).emit("activity-notification","<b>"+socket.me.name+"</b> has joined the room " + socket.room.id);
现在,假设previousRoomID = 1 和socket.room.id = 30。
它发送消息,但它们似乎都发送给所有用户。如果我在 roomID 1 中,并且用户离开了房间,我会收到以下消息:
user has left the room 1
user has joined the room 30
我不应该看到第二条消息,因为在上面的代码中我将它发送到io.to(socket.room.id).emit(),但即使我在 1 号房间,我也会收到这条消息。
也很奇怪,它似乎也在使用广播功能,尽管我没有调用它;如 - 它将它发送给除触发事件的用户之外的所有用户。
我做错了什么?
【问题讨论】: