【发布时间】:2016-10-12 18:02:30
【问题描述】:
我一直在寻找一个明确的答案,但我似乎一直在寻找相互矛盾的答案(例如 this 和 this)。
基本上,如果我
socket.emit('game_update', {n: 1});
从 node.js 服务器,然后,20 毫秒后,
socket.emit('game_update', {n: 2});
来自同一个服务器,有什么方法可以让 n:2 消息在 n:1 消息之前到达?换句话说,如果 n:1 消息在途中丢失,n:1 消息是否会“阻止”接收 n:2 消息?
如果它们是 volatile 发射怎么办?我的理解是 n:1 消息不会阻塞 n:2 消息——如果 n:1 消息被丢弃,n:2 消息在到达时仍会收到。
背景:我正在构建一个 node.js 游戏服务器,并希望更好地了解我的游戏更新是如何传播的。我现在正在使用 volatile emit,我想提高服务器的滴答率,但我想确保独立的游戏更新不会相互阻塞。我宁愿客户端每 30 毫秒接收一次更新,其中散布一些丢弃的更新,而不是让客户端接收更新,在 200 毫秒内什么也没收到,然后一次接收 6 个以上的更新。
【问题讨论】:
标签: javascript node.js websocket socket.io