6

我目前正在使用 Java 服务器端和 as3 客户端。我想知道是否有灵丹妙药可以在它们之间同步时钟。在可变延迟和可变时钟速度之间,似乎每个数据包都需要一个时间戳。

谢谢!

4

2 回答 2

2

这只是我的想法,没有任何代码。

  1. 将代码放入服务器和客户端以发送和接收 ping。
  2. 每次客户端连接时,都会从客户端向服务器发送 ping。
  3. 记录当前时间作为发送时间。
  4. 当客户端收到 ping 时,在接收时间记录当前时间。
  5. 通过发送时间减去接收时间并除以 2 得到时间延迟。
  6. 让服务器将当前时间发送给客户端。
  7. 从发送的时间服务器中减去时间差。
  8. 将客户端时间设置为步骤 6 中的时间。

我不确定这是否会 100% 准确,但我希望这会有所帮助!

于 2012-04-30T01:42:16.243 回答
0

不,没有灵丹妙药。你必须即兴发挥。时间戳是个好主意。另外,尽量减少在服务器上完成的计算。不要模拟不相关的东西。只是你认为会破坏你的游戏逻辑的东西。让客户端计算其余的,并且只将结果广播给你的订阅者。

于 2012-04-07T16:03:47.217 回答