Socket.io 设置间隔不准确

Socket.io setInterval inaccurate

本文关键字:不准确 设置 io Socket      更新时间:2023-09-26

我正在将 Socket.io 与Node一起使用.js并且有一个每秒发出消息的进程。 基本上,我有一个看起来像这样的间隔:

setInterval(function(){
 socket.emit('message', msg);
}, 1000);

当我只使用 xhr 轮询时,轮询非常零星。 有时它会相当准确地轮询,大约 1.0 秒、1.01 秒或 999 毫秒。 然后其他时候,它会像 200 毫秒或 1.5 毫秒等。

我已经删除了所有可能导致服务器延迟的逻辑,并且只是发出静态数据,它仍然非常零星。

关于处理这个问题的更好方法的任何想法会更准确?

谢谢!

我已经使用 Socket.io 构建了几款游戏,并在服务器上以每秒 30 帧的速度运行并获得了很好的结果,并将信息更新推送到所有客户端。我记得当客户端不支持套接字(回退到闪存)时遇到问题——似乎从客户端发送的数据几乎是立即出现的,但从服务器发送的数据就像你描述的那样(零星)。