синхронизировать время клиента с временем сервера, то есть сделать клиентское приложение независимым от времени локального компьютера - PullRequest
0 голосов
/ 04 июля 2010

Хорошо, поэтому ситуация выглядит следующим образом.

У меня есть сервер со службами для игры, определенная команда с сервера отправляет метку времени, когда должен начаться следующий раунд игры.Для полной синхронизации всех подключенных клиентов у меня также есть веб-служба, которая возвращает временную метку текущего времени серверов.

Что я знаю: время между отправленным запросом и полученным ответом.Что я не знаю: где задержка, на клиентской обработке или серверной обработке или проблемах пропускной способности.

Какова лучшая практика, чтобы получить разумный результат здесь.Я предполагаю, что GPS, должно быть, решил это каким-то образом, но я не смог найти хороший шаблон.

Что я делаю сейчас, так это добавляю половину задержки запроса к отметке времени сервера, но это не такдостаточно хорошоДля этого может потребоваться, чтобы время между отправкой и получением могло достигать 11 секунд.

Предложения?

Ответы [ 2 ]

1 голос
/ 04 июля 2010

Существует много распространенных решений для синхронизации времени между машинами, включая правильную реализацию PLL, выполняемую NTPD с RTP. Это полезно для вас, если вы можете изменить местное время машины. Если нет, возможно, вам следует сделать более или менее то, что вы сделали, но отбросить точки синхронизации, когда задержка неоправданна.

0 голосов
/ 07 июля 2010

Лучшей практикой обычно является не синхронизировать абсолютное время, а вместо этого работать с относительным временем.

...