Серверный таймер на jQuery?

Как реализовать таймер, работающий по сути - один человек нажимает старт и у всех начинается отсчет? Точность, конечно, важна. Пользователей не более 10к, в среднем порядка 4к возможно.
  • Вопрос задан
  • 2491 просмотр
Решения вопроса 1
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Какая точность нужна?
Вообще, вижу 3 способа:
- от стартующего уходит запрос на сервер, в БД или куда-нибудь ещё ставится флаг "отсчёт начат". Те самые 10к клиентов периодически, раз в секунду к примеру, делают ajax-запрос на сервер и узнают, начался отсчёт или нет. Точность зависит от периодичности запросов + сетевые лаги. Особых требований к софту в этом случае нету, но должен быть хорошо настроен сам вебсервер, чтобы выдерживать такой поток запросов, пусть и очень лёгких.
- вебсокеты. Все ваши 10к клиентов имеют постоянное соединение с сервером, один из них по сокету посылает серверу сигнал "отсчёт начат", сервер сразу же рассылает его всем остальным. Тут уже надо настраивать демона, к которому собственно 10к клиентов и будут присоединены и который будет принимать и рассылать им сообщения. Точность зависит чисто от сети.
- есть еще dklab_realplexor от Котерова. Используются long polling-запросы, эдакие "вебсокеты для бедных", но вообще работает решение это неплохо. Сам использовал на продакшне, но на очень маленьких нагрузках, а вот tjournal.ru его использует для организации онлайн-трансляций, и там нагрузки значительно больше.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
MrBoriska
@MrBoriska
Пэхэпист самоучка, Питоност по Лутцу. C++
совсем одновременно не получится. Самые лучшие результаты даст WebSocket связь.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
websocket - 100%
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы