1

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

这里的主要问题是,如果一个用户的延迟比其他用户高,他将稍后收到轮换变化,他的计时器将不会同步。假设某人在自己选择了一名球员后获得了转身,而他认为他还剩下 2 秒,我们该如何处理这种情况?尝试测量每个用户延迟并调整客户端计时器以最小化该问题是否更好?如果是这样,我们如何实施呢?

4

1 回答 1

1

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

于 2011-08-01T21:34:52.347 回答