Node.js NodeJS空闲循环在哪里?
使用ExpressJS和Socket.IO,我有一个HTML场景,多个用户可以连接到NodeJ。我要做一些动画,必须同步到所有客户端 在客户端中,我知道动画可以通过setInterval()(不是理想的时间)然后socket.emit()到NodeJS来实现。但是NodeJS中是否有一个空闲循环可以用于主控动画和io.sockets.emit()来更新每个人的信息 编辑:我想对node.js中的值进行常规“动画”,例如伪代码:Node.js NodeJS空闲循环在哪里?,node.js,socket.io,Node.js,Socket.io,使用ExpressJS和Socket.IO,我有一个HTML场景,多个用户可以连接到NodeJ。我要做一些动画,必须同步到所有客户端 在客户端中,我知道动画可以通过setInterval()(不是理想的时间)然后socket.emit()到NodeJS来实现。但是NodeJS中是否有一个空闲循环可以用于主控动画和io.sockets.emit()来更新每个人的信息 编辑:我想对node.js中的值进行常规“动画”,例如伪代码: process.idle(function() { //
process.idle(function() {
// ...
itempos.x += (itempos.dest - itempos.x) / 20; // easing
itempos.y += (itempos.dest - itempos.y) / 20; // easing
io.sockets.broadcast('update', itempos);
// ...
});
查看计时器文档: 所有定时器功能都是全局的
setInterval(回调、延迟、[arg]、…])
计划每隔延迟毫秒重复执行回调。返回可能与clearInterval()一起使用的有效期。还可以选择将参数传递给回调函数
对于同步客户端动画,以比试图将尽可能多的websocket发射压缩到动画持续时间中更慢的速度分块执行序列可能是有意义的。根据我的经验,人眼比网袋慢得多
有大量的客户机框架可以为您减轻负担,而不是服务器问题
(当然,所有这些都不被您的用例所注意!)作为服务器端框架,它很少空闲(CPU或I/O)。此外,idleloop更适合DOM需求。但在node.js中,您有以下功能:
nextTick
调用之前,它不允许执行I/O。如果使用过多,它可以防止发生I/OsetImmediate
调用之间进行I/O操作给定您想要的
setImmediate
更适合您的需要。请澄清您想要实现的目标。对于动画,我建议查看requestAnimationFrame
节点也有setInterval..@AJcodez我需要一个空闲循环,以便尽可能快地处理数据。注意:感谢您的回复。我现在只是在探索NodeJS,所以我不想做任何特别的事情。宽松的例子只是虚构出来的。从目前的评论来看,似乎没有传统的空闲循环?据我所知,空闲循环是用于后台任务的。对于事件驱动的体系结构,可以说基本上一切都是在后台运行的。回答不基于真实用例的问题总是很困难:)