正确计算javascript与服务器往返的时间差

正确计算javascript与服务器往返的时间差,javascript,Javascript,试图在游戏中处理时间差,但我一直无法正确计算(我的弱点)。以下是我到目前为止的情况: function(timeSentToServer, serverTime) { var difference = serverTime-timeSentToServer var roundTripTime = Date.now()-timeSentToServer; var responseTime = roundTripTime-difference; timeDiffere

试图在游戏中处理时间差,但我一直无法正确计算(我的弱点)。以下是我到目前为止的情况:

function(timeSentToServer, serverTime) {
    var difference = serverTime-timeSentToServer
    var roundTripTime = Date.now()-timeSentToServer;
    var responseTime = roundTripTime-difference;
    timeDifference = responseTime;
}
timeSentToServer是发送请求的日期.now()。这是由于多个请求而必需的,并且此函数不在发送请求的函数的范围内。 serverTime是服务器收到请求的时间

时间差应该是一个我可以添加到Date.now()的值,以便与当前的serverTime相匹配(可能需要几毫秒,但这是可以接受的)

然而,我遇到了这样一个问题:我测试的一台设备只比服务器快一秒,这会使整个计算变得异常

e、 g:当前时间:968952发送时间:968834服务器时间:967742差异:1210

这将导致更领先于服务器


Date.now()-差异是我要寻找的解决方案吗?还有,我还可以阅读关于这个主题的其他文章吗?还有其他不同的解决方案吗?

客户端是否也计算了timecenttoserver?你为什么在这里使用serverTime(是吗?它在参数列表中)是的,有一点冗余,我会更新以反映这一点。这些目的的关键时间是从你的服务器开始的,所以使用javascript你真的只想从服务器的“现在”开始,并在每个请求的秒数上打勾。