Socket.io无法正常工作

时间:2012-12-16 02:14:15

标签: node.js socket.io

我制作了一个实时图表,显示每秒钟的系统负载。它在我的本地机器上工作正常但在我将其部署到服务器之后,在从服务器发回数据之前有很长的延迟。此外,我除了数据每秒发回一次,但它以不规则的间隔发送数据。

io.sockets.on('connection',function (socket) {
    var sysinfo = setInterval(function(){
        socket.emit('system_info',{
            time:Date.now(),
            load:os.loadavg(),
            memory:os.totalmem()-os.freemem()
        });
    },3000);

    socket.on('disconnect',function(){
        clearInterval(sysinfo);
    });
});

Here is the chart

Here is the source code

1 个答案:

答案 0 :(得分:1)

好吧,您已将其描述为“每秒”,但您的间隔设置为3000或“ 3 秒< / EM>“。

对于“不规则间隔”,不保证间隔是准确的。

来自Globals

  

请注意,实际间隔可能会有所不同,具体取决于OS计时器粒度和系统负载等外部因素。它永远不会低于ms,但可能会更长。

来自Timers

  

重要的是要注意,你的回调函数可能不会在delay毫秒内被调用 - Node.js不能保证回调何时触发的确切时间,也不会确定将触发的命令。 。回调将尽可能接近指定的时间调用。