在 Socket.io 1.0 和 Socket.io 0.9 中,以下哪种语法对于将消息广播到一个房间内的所有连接的套接字是正确的?
以下都没有向我的客户端 Web 控制台发送消息,该控制台有一个简单的日志语句,但至少有四个正在发送到其他客户端。
我如何正确地将“joined_channel”消息发送回我连接的客户端以及房间中的所有其他客户端?
Client
socket.on('joined_channel', function(data){
console.log('joined channel', data);
})
Server
// this is for 0.9
io.sockets.in(data.room).emit('joined_channel', data.room);
// which version is this for? Any?
socket.broadcast.to(data.room).emit('joined_channel', data.room);
// is this to all connected users?
io.sockets.emit('joined_channel', data.room);
// To all connected users globally?
io.emit('joined_channel', data.room);
// how is socket different than io?
socket.emit('joined_channel', data.room);
// this is for 0.9 but does it work at all?
io.sockets.to(data.room).emit('joined_channel', data.room);
// this is as above but 1.0?
io.to(data.room).emit('joined_channel', data.room);
最佳答案
这是针对最新的socket.io。
这取自http://psitsmike.com/2011/10/node-js-and-socket-io-multiroom-chat-tutorial/
//emit from server to everyone but the clients socket
socket.broadcast.emit('joined_channel', data);
//broadcast information to a certain room only (excluding the client)
socket.broadcast.to( data.room ).emit('joined_channel');
//broadcast information globally to a certain room
io.sockets.in( data.room ).emit('joined_channel');
关于node.js - Socket.io 0.9 和 1.0 向所有房间成员广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27152844/