我需要为幻想体育网站实施申请草案。每个用户将有1m30来选择其团队中的玩家,如果该时间已过,则将自动选择。我们计划的实施将使用Juggernaut将转弯更改推送给参与选秀的每个用户。但我仍然不确定如何处理延迟。
这里的主要问题是如果用户的延迟时间比其他用户高,他将在稍后收到转弯更改并且他的计时器将不会同步。假设有人在选择一名球员后自己接受转牌,他认为他还有2秒时间,我们怎么处理这个案子呢?尝试衡量每个用户延迟并调整客户端计时器以最小化该问题是否更好?如果是这样,我们怎么能实现呢?
答案 0 :(得分:1)
这是一个棘手的问题,但有一些很好的解决方案。看看time.gov做了什么,以及它是如何做到的;实际上,据我所知,他们使用Java对服务器执行多次重复请求,试图了解通信中涉及的延迟,然后生成一种延迟度量,用于扭曲返回的时间数据。您可以为您的应用程序使用相同的过程,更准确;跟踪延迟是什么以及它如何随时间变化让您可以对延迟数据的可靠性进行一些统计推断等等。它可能有点复杂,但它绝对可以让您平滑性能。我的理解是,这也是大多数MMO所做的,以管理滞后。