Node.js Socket.IO最好的方法来聆听房间连接?
我的坏方法
客户端
socket.on('connect',function(){ socket.emit('EnterRoom',{room:'test'});})
服务器端
app.js
io.sockets.on('connection',function(socket){ socket.on('EnterRoom', function(data) { socket.join(data.room); app.emit('event:JoinRoom',{room:data.room}); })});
一些模块与 – rooms.js
app.on('event:JoinRoom',function(data){if(data.room=='test'){/*anycode*/} });
从维基有关房间 :
向特定房间内的所有客户发送活动:
io.sockets.in('room').emit('event_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数组的关键字。 请注意,房间名称将具有前导/字符