在Socket.IO中,'心跳'是一个可以用来触发其他操作的事件吗?

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

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); }); 

但是由于心跳已经在这个时间间隔,所以为什么不使用它呢?

无论如何,任何洞察力将不胜感激。

我想我明白你在做什么。 有几个暴露的事件,你可以在这里检查 – Socket.io事件列表 – 但没有“心跳”事件,你可以点击进入以设定的时间间隔触发。

你在第二块代码的正确轨道上 –

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

而在客户端 –

 socket.on('heartbeat', function(data) { console.log(data); })