![]() |
Синхронизация времени с сервером.
Есть сервер и много клиентов - флешек, в разных странах, на разных компах, и у всех часы могут быть настроены по разному. Я знаю что юникстайм не зависит от часовых поясов. Но он может быть настроен на разное время, т.е. на компах может быть рассинхрон времени +- несколько минут, или вообще 2001 год если батарейка в компе не работает. Мне нужно в запросах к серверу указывать когда он был сделан. Есть некий промежуток времени, пока запрос валиден. Если время прошло, то запрос не валиден. +- несколько секунд вполне приемлимая точность.
Я конечно могу просто обычным запросом запросить у сервера время, он мне его отдаст, я посчитаю дельту относительно локального времени и буду с её учётом слать новые запросы. Но тут получается разница между тем моментом когда сервер сформировал запрос и тем когда его юзер получил равна времени доставки ответа от сервера. Есть ли какие-то стандартные и не костыльные способы такой синхронизации? |
Записывается на сервере ID запроса и время жизни , и при посылке клиентом - проверяется не прошло ли время , если прошло ответ клиенту , что запрос "не валиден"
|
Клиент должен уметь выдавать запросы без их(запросов) предварительной регистрации на сервере. Один раз зарегался и потом хоть 1000 запросов отправляй. Время отправки запроса должно быть в самом запросе.
|
Первый запрос регистрируется и хранится его время , все последующие запросы сравниваются с ним , ну или промежуток времени смотреть getTimer()'ом
|
Я про это же написал. Да так можно, вопрос в том как сократить влияние того, что ответ на запрос идёт какое-то продолжительное время
|
Сервер отправил - засёк время отправки. Получил ответ - померял пинг. Поправка - полпинга. Можно при каждой отправке корректировать.
Помнить, что клиент может слать любую фигню. Причем бывает, что у него просто часы страшно плющит, а не потому что читер. |
Можно смотреть время выполнения запроса , что-то наподобие ping. И это время использовать как погрешность.
|
| Часовой пояс GMT +4, время: 13:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.