socket.io 其他房间的流量

socket.io traffic for other rooms

为什么我看到 (chrome/network) 中其他房间的流量。

Node.js 和 socket.io 0.9.16

简化设置

//sockets-server
socket.on('subscribeToSome', function (data) {
    joinToRoom(socket, data);
    console.log("joining" + data.room);
 });

 //client
 socket.emit(subscribeToSome, {room: room, data: dataToSubscribe});
   socket.on(room, function(data){
   console.log(data);
 });


//route -server
global.io.sockets.emit("room1", {aa:"ads"}

一切正常,但我可以看到 (chrome/network) 中其他房间的流量,即使是非会员。 (仅在 network/Websockets 的回调中数据不可见)

怎么会?以及如何解决它。

谢谢。 //卡尔

据我从您的代码中可以看出,您没有向房间发送消息,而是为消息使用了事件名称。如 documentation 所示,emit 将字符串作为第一个参数,为该消息指定一个名称,您的回调将挂接到该名称。

发射到房间如下所示:

global.io.sockets.to("room1").emit("message", {aa:"ads"}

您还需要将您的套接字连接到那个房间,以便它接收相应的消息。

有关该主题的更多信息,请参阅 http://socket.io/docs/rooms-and-namespaces/