其他房间的socket.io流量

时间:2015-03-19 15:14:34

标签: node.js socket.io

为什么我会看到其他房间的流量(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"}

一切正常但我可以看到(铬/网络)其他房间的交通甚至不是它的成员。 (数据仅在网络/ Websockets中的回调中可见)

为什么?我该如何解决呢。

感谢。 //卡尔

1 个答案:

答案 0 :(得分:0)

从我的代码中我可以看到,您没有向房间发送消息,但是您使用了事件名称来表示消息。如documentation所示,emit将String作为第一个参数,为该消息提供一个名称,您的回调将被挂钩。

发送到一个房间将如下所示:

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

您还需要将套接字加入该会议室,以便接收相应的消息。

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