node.js - Socket.io 0.9 和 1.0 向所有房间成员广播

标签 node.js socket.io

在 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/

相关文章:

callback - 如何处理回调函数中的响应(以 nodejs 中的 cradle 为例)

javascript - Express 4.x bodyparser 不工作

javascript - 使用 sails.js 中的钩子(Hook)生成的数据

Javascript getElementsByClassName 返回一个奇怪的集合

javascript - 为什么套接字会发出多次?

node.js - engine.io 和 socket.io 有什么区别?

node.js - Socket.io 实时聊天——管理用户好友

javascript - vs code node js中没有intellisense

node.js - Socket.IO和Electron无法发射或接收

javascript - 在 node.js 中安装 Socket.io 包