この問題で苦労しているのは私だけではないようです。NodeJSが特定の部屋に放射する[socket.io]
しかし、私は簡単なチャットアプリケーションを作成しようとしています。ユーザーがルームに参加すると、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()
に送信していたコードで上記ので、私は、第2のメッセージを見ることができるはずの私が部屋1にいるときでも、私はこのメッセージを受けています。
奇妙なことにも、私はそれを呼んでいないにもかかわらず、放送機能も使っているようです。イベントを発生させたユーザー以外のすべてのユーザーに送信します。
私は間違っていますか?