【问题标题】:Socket.IO only emitting to all clientsSocket.IO 只发送给所有客户端
【发布时间】:2016-10-19 21:49:16
【问题描述】:

我的代码的正确部分是

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

本例中的图表,如果我连接了 3 个用户,图表在一秒内更新 3 次我需要在 1 秒内执行代码 1 次,无论客户端数量多少

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-08-17
        • 1970-01-01
        • 1970-01-01
        • 2018-01-30
        • 2020-12-17
        • 2019-08-04
        • 1970-01-01
        • 2020-08-19
        • 2022-01-15
        相关资源
        最近更新 更多