向所有客户广播消息

时间:2013-07-23 23:32:56

标签: javascript node.js socket.io

我尝试向所有客户广播消息但没有成功。

标记的行工作,但仅限于一个客户端。

我已经尝试过这些选项: socket.emit socket.broadcast.emit

enter image description here

由于

1 个答案:

答案 0 :(得分:3)

您正在错误对象上调用on函数。您应该将socket变量重命名为其他内容。最常见的是,人们使用io

io = require('socket.io').listen(server);

然后,您需要致电emit上的sockets发送给所有用户:

io.sockets.on('connection', function(socket) {
    io.sockets.emit('message', data);
});

当然,send是使用emit作为事件的message。所以你可以在你的回调中使用它:

io.sockets.send(data);

在任何一种情况下,您都必须在客户端中执行以下操作以对此事件做出反应:

socket.on('message', function (data) {
  // Do things with data
});

注意:socket.broadcast.emit可用于向仅与socket关联的用户以外的所有用户发送事件。