Node.js Socket.IO监听房间连接的最佳方式?
我的坏方法 客户端Node.js Socket.IO监听房间连接的最佳方式?,node.js,socket.io,Node.js,Socket.io,我的坏方法 客户端 socket.on('connect',function(){ socket.emit('EnterRoom',{room:'test'});}) 服务器端 app.js some-module-with-rooms.js app.on('event:JoinRoom',function(data){if(data.room=='test'){/*anycode*/} }); 关于: 向特定房间中的所有客户端发送事件: io.sockets.in('room').emit
socket.on('connect',function(){ socket.emit('EnterRoom',{room:'test'});})
服务器端app.js some-module-with-rooms.js
app.on('event:JoinRoom',function(data){if(data.room=='test'){/*anycode*/} });
关于:
向特定房间中的所有客户端发送事件:
io.sockets.in('room').emit('event\u name',data)
因此,在你的情况下:
io.sockets.on('connection',function(socket){
socket.on('EnterRoom', function(data) {
socket.join(data.room)
io.sockets.in(data.room).emit('JoinRoom', data);
})
});
将仅发射到选定房间的。
您可以访问该房间:
io.sockets.manager.rooms
我引用这些文件:
这是一个散列,房间名称作为套接字ID数组的键。请注意,文件室名称将有一个前导/字符
是的:D但是100%的坏方法希望能有帮助:)让我知道。看看Wiki,app.emit('event:JoinRoom',{room:data.room})中有很多信息;-在所有应用程序上发出joinroom事件。。。app.on('event:JoinRoom',function(data){if(data.room=='test'){/*anycode*/}}})。。。那个听众室哦,好吧。。。我懂了。您希望在服务器中的其他位置发出该事件
io.sockets.manager.rooms