我的坏方法
客户端
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*/} });
答案 0 :(得分:2)
向特定房间的所有客户发送活动:
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数组的键。请注意,房间名称将具有前导/字符