1

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

标记线有效,但仅适用于一位客户。

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

在此处输入图像描述

谢谢

4

1 回答 1

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.

于 2013-07-23T23:36:24.953 回答