首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两台不同机器之间同步时间

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

Stack Overflow用户
提问于 2016-09-03 22:07:09
回答 1查看 53关注 0票数 0

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

问题是当我直接从服务器获取聊天日志时,它的顺序是正确的,因为所有消息都有服务器自己的时间。

但是在A直接向B发送消息的情况下,由于时间不匹配,排序是不适当的。

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

它是这样的:

代码语言:javascript
复制
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 be,B和服务器之间的时间差异将是3分钟。

EN

回答 1

Stack Overflow用户

发布于 2016-09-03 22:10:04

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

您还可以向服务器发送每条消息的时间,但我不认为这对于聊天应用程序是必要的

因此,如果A想要开始聊天,他将登录到服务器,并得到一个响应,其中也包含服务器时间。假设A在上午9:30,服务器在上午9:33。服务器在上午9:30响应,A知道它提前了3分钟。然后它可以校正它的日志时间。

B也是如此。如果A向B发送消息,它也可以发送服务器时间,因为它比A时间晚3分钟。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39307805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档