Я работаю над сетевой флеш-игрой с использованием TCP-сокетов (вынужден использовать TCP b / c flash). Игра довольно простая, так как в основном это текстовая игра. Единственная реальная синхронизация, которая должна выполняться, - это таймер обратного отсчета для каждого клиента. Этот таймер начнется через 60 секунд и обратный отсчет до 0, а при 0 произойдет некоторое изменение состояния игры, поэтому важно, чтобы все клиенты достигли 0 в одно и то же время.
Я мог бы отправить команду «начать отсчет времени» со своего сервера всем клиентам и использовать системные часы клиентов, но если пакет будет отброшен или задержан, тогда клиент может выйти из синхронизации с другими. Я также мог бы применить некоторый протокол клиент-сервер, где клиент должен «регистрироваться» на сервере каждую секунду (или меньше), а сервер обеспечивает синхронизацию всех клиентов. Моя забота об этом - эффективность. Моя игра - медленная текстовая игра, поэтому вполне возможно, что у клиента может не быть данных для отправки на сервер в течение 30 секунд за один раз.
Возможно, не удастся избежать ситуации «постоянной регистрации», но я надеюсь, что кто-нибудь подскажет мне эффективное решение для синхронизации таймера между несколькими клиентами во флэш-приложении.
Заранее спасибо.
P.S. Я не думаю, что NTP возможен со вспышкой.