ゲームの時間差を処理しようとしていますが、計算を正しく行うことができませんでした (私の弱点)。私がこれまでに持っているものは次のとおりです。
function(timeSentToServer, serverTime) {
var difference = serverTime-timeSentToServer
var roundTripTime = Date.now()-timeSentToServer;
var responseTime = roundTripTime-difference;
timeDifference = responseTime;
}
timeSentToServer は、リクエストが送信されたときの Date.now() です。これは複数の要求のために必要であり、この関数は要求を送信する関数の範囲内にありません。serverTime は、サーバーがリクエストを受信した時刻です
timeDifference は、現在の serverTime と一致させるために Date.now() に追加できる値である必要があります (おそらく数ミリ秒ずれていますが、許容範囲です)。
ただし、私がテストしている1つのデバイスがサーバーよりわずか1秒進んでおり、計算全体がうまくいかないという問題が発生しています
例: currentTime: 968952 sentTime: 968834 serverTime: 967742 difference: 1210
その結果、サーバーよりもさらに先を行っています。
Date.now()-difference は私が探している解決策になりますか? また、この件に関して私が読むことができる他の記事や、別の解決策はありますか?