Как реализовать синхронизацию времени таймера на разных клиентах? Инет облазил четкого ответа нигде не нашел. Хотя бы подскажите в какую сторону копать. Желательно как можно подробнее. Очень буду благодарен.
На данный момент отсчет начинается с момента, когда первый клиент зайдет на сайт. Начинают отправляться асинхронные запросы, получение данных с бд о времени, обновление данных в бд. Но проблема в том, что это всё зависит от клиента (когда же он зайдет). Мне же необходимо чтобы таймером оперировал сам сервер, а не сверял данные поступающие от ajax-запросов. В таком случае таймер будет работать, обновляться и сам розыгрыш будет проходить самостоятельно и не зависеть от клиента.
Ответ
Если же необходимо чтобы таймером оперировал сам сервер.
Если есть цель создать процес независимо от клиентов, то можно все реализовать на linux сервере используя cron. Каждые 10 сек к примеру запускать php файл и запускать какой то алгоритм для розыгрыша. По поводу времени, вам подойдет функция time(); на php она возвращает время в секундах (int), и его очень удобно использовать для проверки чего либо связаного с времинем. Также time() можно конвертировать в data(), чтобы красиво смотрелось в браузере. К примеру если 5 клиентов подключены к "комнате" и вдруг отключились, то комната и далее будет существовать и реагировать на время так как ее будет запускать cron каждые несколько секунд. Для розыгрыша или покера такой стак технологий подойдет вполне. Это, я считаю, в кое чем класическое решение, если использовать php, ajax, и линукс сервер. Единственное нужна будет виртуалка с линуксом, рекомендую digital ocean (сам использую). Или же хостинг где будет возможность настроить cron
Комментариев нет:
Отправить комментарий