Я занимаюсь разработкой клиент-серверного программного обеспечения и ищу наилучший способ синхронизации моих клиентских часов с часами сервера.
Конечно, я не могу использовать NTP , потому что я не хочу касаться системных часов. Я просто пытаюсь вычислить интервал времени, чтобы я мог добавить его к каждой дате, полученной от сервера, чтобы преобразовать его в «местное время»
Что я знаю, так это:
Я решаю проблемы с TimeZone, используя время по Гринвичу
Сервер отправляет свое текущее время Клиенту при подключении, и Клиент вычитает время сервера из своего времени для вычисления промежутка времени.
Это прекрасно работает, когда задержка в сети постоянна (читай "моя ЛВС" ...)
К сожалению, я хочу, чтобы мое программное обеспечение работало в Интернете и даже на мобильных клиентах, для которых я наблюдал вариации задержки до 1 минуты.
Для программного обеспечения, над которым я работаю, такая задержка недопустима.
Что было бы хорошей стратегией для вычисления промежутка времени клиент / сервер?
Последнее: я могу отправлять сообщения обоими способами (клиент на сервер и сервер на клиент)
Это, вероятно, не имеет значения, но технология, лежащая в основе этого, - это .net WCF-клиент, использующий привязку http с некоторым опросом