2012-06-28 42 views
2

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

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

当我只使用xhr轮询,轮询是相当零星的。有时它会相当准确地进行轮询,大约在1.0s或1.01s或999ms。然后其他时间,它会像200毫秒或1.5毫秒等。

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

有更好的方法来处理这个会更准确的任何想法?

谢谢!

+0

如果你运行它10秒,它总是相同的模式? – c0deNinja

+0

我想知道它是否与你的xhr块大小有关 – EhevuTov

回答

0

我已经使用Socket.io构建了几款游戏,并且在服务器上以每秒30帧的速度运行,并将信息更新推送给所有客户端。 我记得有一个客户端不支持套接字的问题(回退到闪存) - 似乎从客户端发送的数据几乎是立即发送,但从服务器发送的数据将如您所描述的(零星的)。