以下是我的情况:
我有一个客户端连接到具有Node.js,socket.io。
的服务器如果我在服务器上计算Date.now(),将其发送到客户端,然后让客户端打印从服务器接收的时间并且它自己的Date.now()我得到一个非常奇怪的结果:服务器时间比客户端时间大514ms。但从逻辑上讲,服务器Date.now()必须在客户端之前发生。
我不明白这里发生了什么。由于时区,服务器是否以不同于客户端的方式计算Date.now()?还有其他事情发生了吗?
答案 0 :(得分:1)
您所看到的内容称为时钟偏差。像任何时钟一样,计算机内的时钟必须设置为正确的时间,任何两台计算机的时钟都会慢慢分开。因此,几乎可以肯定的是,任何两台计算机都会认为它的时间略有不同。通常情况下,这种差异很小,你没有注意到,但是当你故意进行像你刚才那样的实验时,它可能足够大。