Date.now()在服务器上相对于客户端提前



我的情况如下:

我有一个客户端连接到服务器与Node.js, socket.io.

如果我计算服务器上的Date.now(),将其发送给客户端,然后让客户端打印从服务器接收的时间和它自己的Date.now(),我得到一个非常奇怪的结果:服务器时间比客户端时间大514ms。但是从逻辑上讲,服务器的Date.now()必须发生在客户端之前。

我不明白这里发生了什么。服务器计算Date.now()与客户端计算Date.now()是否因为时区不同而不同?

你所看到的被称为时钟倾斜。像任何时钟一样,计算机内部的时钟必须设置为正确的时间,任何两台计算机的时钟都会慢慢地彼此偏离。因此,几乎可以肯定的是,任意两台计算机都会认为时间略有不同。通常,这种差异很小,你不会注意到,但当你故意进行一个像你刚刚做的实验时,它可能大到足以看到它。

最新更新