私はクライアント/サーバーソフトウェアを開発しており、クライアントの時計をサーバーの時計と同期させるための最良の方法を探しています。
もちろん、システム時計に触れたくないので、NTPは使えません。サーバーから受信したすべての日時にタイムギャップを追加して「現地時間」に変換できるように、タイムギャップを計算しようとしています。
私が知っていることはそれです:
GMT時間を使用してTimeZoneの問題を処理します
サーバーは接続時に現在の時刻をクライアントに送信し、クライアントは時刻からサーバー時間を差し引いてタイムギャップを計算します。
これは、ネットワークラグが一定の場合にうまく機能します(「myLAN」を読んでください...)
残念ながら、私は自分のソフトウェアをインターネット上で、さらにはモバイルクライアント上でも動作させたいと思っています。モバイルクライアントでは、最大1分のラグの変動が見られます。
私が取り組んでいるソフトウェアの場合、このような遅れは許容できません。
クライアント/サーバーのタイムギャップを計算するための良い戦略は何でしょうか?
最後に:私は両方の方法でメッセージを送信できます(クライアントからサーバーおよびサーバーからクライアント)
おそらく無関係ですが、この背後にあるテクノロジは、ポーリングを伴うhttpbindingを使用する.netWCFクライアントです。