5

我有一个收集实时市场数据并将其显示在网络前端的网络服务。

我的前端(jQuery)需要显示一个与服务器时钟同步的时钟(+- 几秒钟就可以了)。

我正在考虑在客户端加载时与服务器提供的其余数据一起提供 UTC 时间戳。

然后,我会启动一个计时器,每 1 秒增加显示的时钟。

这是一个好方法还是使用时间服务器更好?

谢谢!

4

1 回答 1

12

您需要考虑网络延迟。来自您服务器的数据不会立即发送给您。我建议使用Cristian 算法

  1. 客户端标记当前客户端时间(T1)并向服务器发送请求。
  2. 服务器将时间(T2)发送给客户端。
  3. 客户端收到服务器应答并再次标记其当前时间(T3)。
  4. T3 - T1 是往返服务器所需的总时间请求 (RTT)。现在我们可以假设从服务器到客户端大约需要一半的时间。所以,你的“正确”时间是 T2 + (T3 - T1)/2

在维基百科上阅读更多关于时钟同步算法的信息

于 2012-07-17T11:24:44.527 回答