Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在本地使用Node.js时,客户端和服务器的时间不同_Javascript_Node.js_Time_Websocket - Fatal编程技术网

Javascript 在本地使用Node.js时,客户端和服务器的时间不同

Javascript 在本地使用Node.js时,客户端和服务器的时间不同,javascript,node.js,time,websocket,Javascript,Node.js,Time,Websocket,我让节点服务器在本地工作,并通过webbrowser连接到此服务器。我使用websocket在客户端和服务器之间进行通信。我想测量向服务器和从服务器发送websocket消息的准确时间。我使用javascript函数Date.now(),但问题是,在我的结果中,有时消息在客户端发送之前被服务器接收。我猜客户端“时钟”和服务器“时钟”之间是有区别的。但在同一台机器上有两个。 我将非常感谢您的解释和资源链接。因为John Resig概述的javascripts时间不准确。可以使用javascript

我让节点服务器在本地工作,并通过webbrowser连接到此服务器。我使用websocket在客户端和服务器之间进行通信。我想测量向服务器和从服务器发送websocket消息的准确时间。我使用javascript函数Date.now(),但问题是,在我的结果中,有时消息在客户端发送之前被服务器接收。我猜客户端“时钟”和服务器“时钟”之间是有区别的。但在同一台机器上有两个。 我将非常感谢您的解释和资源链接。

因为John Resig概述的javascripts时间不准确。可以使用javascript访问的时钟每隔几毫秒仅“滴答”一次。这意味着它可能与精确时间相差约7毫秒。现在,如果您的请求所用的时间比这个小的时间跨度短(如果它停留在本地主机上,则可能会发生这种情况),那么它看起来可能是在发送之前收到的

 real time: 1000ms
 js time: 1000ms

 travel time: 5ms

 real time: 1005ms
 js time: 998ms // inaccuracy

 difference: -2ms

我们无法对此进行任何改进,因为
性能。出于安全原因,现已禁用了
。因此,我们唯一能做的就是引入网络延迟:),但时钟时间可能会更晚…

有时,在客户端发送消息之前,服务器会收到消息。不,这是不可能的。不要指望
日期。现在,准确地说,
。大多数浏览器跳过几毫秒。。。