Javascript无限循环更新实体
Javascript infinite loop to update entities
我正在用javascript编写一个游戏,在服务器上做世界/地图服务,我还需要添加一个命令来更新所有实体。
假设一个实体/怪物正在移动,这意味着一个持续的更新被发送到所有连接的客户端。
如果我输入
while(true)
sendToAllConnectedClientsNearToThisMonster(data)
items.forEach
checkIfItemHasNotExpiredYet(item)
deleteItemFromWorldIfExpired()
但与此同时,同样的服务也在做其他事情,比如处理进出的数据包。encryption对报文进行解密。路由数据包,将聊天数据包转发到聊天服务器等
这不会阻塞我的node.js服务器吗?处理这些任务的正确方法是什么?
使用setInterval
,它每X毫秒(在本例中为250毫秒)执行您的函数。这样您就不会阻塞您的服务器。由于node.js是单线程的,你应该始终遵循回合法则:永远不要等待。永远不会阻塞。快点结束!
下面是用setInterval包装的伪代码:
setInterval( function() {
sendToAllConnectedClientsNearToThisMonster(data)
items.forEach
checkIfItemHasNotExpiredYet(item)
deleteItemFromWorldIfExpired()
}, 250);
http://nodejs.org/api/timers.html timers_setinterval_callback_delay_arg
相关文章:
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 实体位置发生变化时未进行可视化更新
- JQuery多选以更新实体数据源
- Javascript无限循环更新实体
- 有没有办法通过OData v4中的一个PATCH请求来更新实体属性并添加对它的引用