gpt4 book ai didi

node.js - NodeJS 空闲循环在哪里?

转载 作者:搜寻专家 更新时间:2023-11-01 00:45:10 25 4
gpt4 key购买 nike

使用 ExpressJS 和 Socket.IO 我有一个 HTML 场景,多个用户可以在其中连接到 NodeJS。我即将制作一些必须同步到所有客户端的动画。

在客户端,我知道动画可以通过 setInterval() (不是时间理想的)然后 socket.emit() 到 NodeJS 来实现。但是在 NodeJS 中是否有一个空闲循环可以用于主控动画和 io.sockets.emit() 来更新每个人的每个人?

编辑:我想在 node.js 中对值做一般的“动画”,例如伪代码:

process.idle(function() {

// ...
itempos.x += (itempos.dest - itempos.x) / 20; // easing
itempos.y += (itempos.dest - itempos.y) / 20; // easing

io.sockets.broadcast('update', itempos);
// ...
});

最佳答案

作为服务器端框架,它很少空闲(CPU 或 I/O)。此外 idleloop 更适合 DOM 要求。但是在 node.js 中你有以下功能:

  1. process.nextTick :在当前事件队列完成后执行回调,即在下一个事件循环开始时执行。在 maxTickDepth 之前,它不允许执行 I/O nextTick 调用被执行。如果使用过多,它会阻止 I/O 发生。

  2. setImmediate :在当前事件循环中的 I/O 回调完成后执行回调。允许 I/O 在多个 setImmediate 调用之间发生。

鉴于您的需求,setImmediate 更适合您的需求。

关于node.js - NodeJS 空闲循环在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20945349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com