Socket.IO只向所有客户端发送

时间:2016-06-18 00:12:11

标签: node.js socket.io real-time

我的代码的右边部分是

io.sockets.on('connection', function(socket){
var interval = setInterval(function() {
    repaintGraph()
    socket.emit('set data chart', '{"series":[['+series+']]}');
}, 1000 );

在这种情况下的图表,如果我连接了3个用户,图表会在一秒内更新3次我需要在1秒内执行1次代码,无论客户端数量是多少

2 个答案:

答案 0 :(得分:0)

尝试使用     socket.broadcast.emit('event',data)

答案 1 :(得分:0)

您可以在连接代码之外运行间隔代码:

setInterval(function() {
  repaintGraph();
  io.emit('set data chart', '{"series":[['+series+']]}');
}, 1000);

io.on('connection', function() {
  ...
});

io.emit()将每秒向所有连接的客户端广播该消息。

代码中的效率低下,即使没有连接任何客户端,它也会每秒调用repaintGraph(),但它会使代码更容易。< / p>