9

这个确切的代码不起作用,但是,我希望它是这样的:

io.sockets.on('connection', function(socket) {
    socket.on('heartbeat', function() {
        // Do something here...
    });
});

这样的事情可能吗?我的意思是,我知道我可以使用 setInterval 创建一个不同的函数,例如每 15 秒触发一次:

io.sockets.on('connection', function(socket) {
    setInterval(function() {
        // Do something
    },15000);
});

但是既然心跳已经在这个间隔运行,为什么不利用它呢?

无论如何,任何见解都将不胜感激。

4

1 回答 1

9

我想我明白你在做什么。您可以在此处查看一些公开的事件 - Socket.io 事件列表- 但没有“心跳”事件可供您按设定的时间间隔触发。

您使用第二段代码走在正确的轨道上-

setInterval(function() {
    socket.emit('heartbeat', someData);
}, 5000);

在客户端 -

socket.on('heartbeat', function(data) {
    console.log(data);
})
于 2012-07-12T01:11:28.900 回答