在Socket.IO中,“心跳"是否是可用于触发其他动作的事件? [英] In Socket.IO, is 'heartbeat' an event that can be used to trigger other actions?

查看:219
本文介绍了在Socket.IO中,“心跳"是否是可用于触发其他动作的事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

This exact code doesn't work, but, I was hoping something like it was:

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

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

Is something like this possible? I mean, I know I can just make a different function that triggers every, say, 15 seconds using a setInterval:

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

但是由于心跳已经在此间隔运行,为什么不使用它呢?

But since the heartbeat is already running at this interval, why not make use of it?

在任何情况下,任何见识都将不胜感激.

In any case, any insight would be greatly appreciated.

推荐答案

我认为我明白了您要执行的操作.您可以在此处查看一些公开事件- Socket.io事件列表-但没有可以触发的心跳"事件以设定的时间间隔触发.

I think that I see what you're trying to do. There are a few exposed events that you can check here - list of Socket.io events - but there is no "heartbeat" event that you can tap into to fire at a set interval.

使用第二段代码,您就走对了-

You're on the right track with the second piece of code -

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

在客户端-

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

这篇关于在Socket.IO中,“心跳"是否是可用于触发其他动作的事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆