如何在两台不同的机器之间同步时间

时间:2016-09-03 14:07:09

标签: javascript java

我有一个聊天应用程序。我有两台机器A& B. A在晚上7:10发送消息(自己的时间) B在晚上7:12(自己的时间)收到一条消息 在服务器中,我将时间(服务器自己的时间而不是任何客户端时间)存储为Long JAVA数据类型。

问题是当我直接从服务器获取聊天记录时,其订单是正确的,因为所有消息都有服务器自己的时间。

但是如果A直接向B排序发送消息不是时间不匹配的合适因素。

客户端是JS&服务器端是JAVA

这就是它的样子:

A (7:10 PM) -----toServer ----> Server (Store message at 7:11PM)
|
+------- directly to B --> B receives message (Its own time is 7:08 PM)

现在,如果我在B处订购消息,它将无法按正常顺序显示。下次我将从服务器上取下时它将显示下午7:11和B& B之间的时差。服务器时间为3分钟。

1 个答案:

答案 0 :(得分:0)

如果登录,只需将服务器时间发送给客户端。然后计算客户端时间之间的差异,并将其用作日志中的偏移量。

您也可以向每封邮件发送服务器时间,但我认为聊天应用程序不需要这样做

因此,如果A想要开始聊天,他将登录服务器并获得也包含服务器时间的响应。说A是早上9:30,服务器是9.33am。服务器在上午9点30分响应,A知道它提前3分钟。然后它可以纠正它的日志时间。

同样适用于B.如果A向B发送消息,它也可以发送服务器时间,因为它是3分钟后的A时间。