同步客户端和服务器端时间
问题描述:
我有一个webservices收集实时市场数据并将其显示在Web前端。同步客户端和服务器端时间
我的前端(jQuery)需要显示一个时钟,与服务器时钟稍微同步(+ - 几秒钟就可以)。
我正在考虑与客户端加载时服务器提供的其余数据一起传递UTC时间戳。
然后,我会启动一个计时器,并每隔1秒增加显示的时钟。
这是一个好方法还是使用时间服务器更好?
谢谢!
答
您需要考虑网络延迟。您的服务器中的数据不会立即传达给您。我建议使用Cristian algorithm:
- 客户端标记当前客户端时间(T1)并向服务器发送请求。
- 服务器将时间(T2)发送给客户端。
- 客户端收到服务器应答并再次标记当前时间(T3)。
- T3 - T1是去服务器和返回(RTT)所需的总时间请求。现在我们可以假设从服务器到客户端需要大约一半的时间。所以,你的 “正确” 的时间是T2 +(T3 - T1)/ 2
+0
+1,但如果他+/-几秒钟就好了,他不会在意网络延迟。 – Bergi 2012-07-17 11:30:56
+0
我们不知道他是否适合。无论如何,这很容易解释它 - 算法非常简单。 – 2012-07-17 11:35:01
看起来不错。如果有一段时间没有其他请求,您也可以提出更多的请求来纠正客户端定时器。 – 2012-07-17 11:08:08
如果你不在乎几秒钟,这种方法会出现什么问题? – Bergi 2012-07-17 11:33:44
我猜不出什么!感谢人们 – user1094786 2012-07-17 12:26:43