ruby-on-rails - 使用 Juggernaut 同步客户端计时器时处理延迟

标签 ruby-on-rails node.js timer latency juggernaut

我需要为梦幻体育网站实现申请草案。每个用户将有 1 分 30 秒的时间来选择其团队中的一名球员,如果该时间已过,则会自动选择该球员。我们计划的实现将使用 Juggernaut 将回合更改推送给参与选秀的每个用户。但我仍然不确定如何处理延迟。

这里的主要问题是,如果用户的延迟比其他人高,他将晚一点收到回合更改,并且他的计时器将不会同步。假设某人在自己选择一名球员后收到了轮换,而他认为自己还剩 2 秒,我们该如何处理这种情况?尝试测量每个用户的延迟并调整客户端计时器以最大程度地减少该问题是否更好?如果是这样,我们如何实现呢?

最佳答案

这是一个棘手的问题,但有一些很好的解决方案。了解 time.gov 做什么以及如何做;本质上,据我了解,他们使用 Java 对服务器执行多个重复请求,试图了解通信中涉及的延迟,然后生成延迟度量,用于扭曲返回的时间数据。您可以对您的申请使用相同的流程,并且更加准确;跟踪延迟是什么以及它如何随时间变化可以让您对延迟数字的可靠性等做出一些统计推断。它可能有点复杂,但它绝对可以让您平滑性能。我的理解是,这也是大多数 MMO 所做的,以管理延迟。

关于ruby-on-rails - 使用 Juggernaut 同步客户端计时器时处理延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6900062/

相关文章:

javascript - 每次 setInterval 触发时都会发生 SyntaxError

ruby-on-rails - 使用 Capybara 和 Rails 3 维护 session

javascript - 可以序列化node.js vm.script吗?

javascript - 如何在 javascript 中使用服务器端倒数计时器?

javascript - 如何使用 javaScript 增加计时器中的分钟值

javascript - Node.js 需要同一文件夹中的多个文件

ruby-on-rails - 在一页上显示所有结果 (gem kaminari)

ruby-on-rails - wicked_pdf 错误 : PDF could not be generated

sql - 如何在多列的唯一索引中允许一列为 NULL 值

javascript - Node.js 解析 JSON