试图让游戏处理时间有所不同,但我无法正确地计算数学(我的弱点)。这是我到目前为止所拥有的:
function(timeSentToServer, serverTime) {
var difference = serverTime-timeSentToServer
var roundTripTime = Date.now()-timeSentToServer;
var responseTime = roundTripTime-difference;
timeDifference = responseTime;
}
timeSentToServer是发送请求时的Date.now()。由于多个请求,这是必需的,并且此功能不在发送请求的函数范围内。 serverTime是服务器收到请求的时间
timeDifference应该是一个值,我可以添加到Date.now()以匹配当前的serverTime(可能只有几毫秒,但这是可以接受的)
然而,我遇到了一个问题,即我测试的一个设备只比服务器提前一秒,而且它会使整个计算失败
例如:currentTime:968952 sentTime:968834 serverTime:967742差异:1210
导致更加领先于服务器。
将Date.now() - 差异成为我正在寻找的解决方案?还有,我可以阅读有关这个主题的任何其他文章,以及任何不同的解决方案吗?