@Vadim1899

Подойдет ли long pollibg под мою задачу?

Добрый день. Делаю сайт с динамично обновляющимся контентом.
Юзер добавляет материал, и он появляется у всех пользователей в ту же секунду (в теории).
Периодичность добавления новых материалов - раз в пару секунд, возможны периоды в 1 секунду.

Пробовал делать ajax-ом с таймером в 1 сек, просто обновлял скрипт куска, где выводятся материалы, но прочитал что при такой реализации очень большая нагрузка на сервер и на базу.

Наткнулся на такую технологию, как long-polling, прочитал что как раз для этого она и используется (для реал-тайма) но так же прочитал что для таких частых обновлений, как раз в ~2-4 секунды он не подходит
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 3
Смотря какая нагрузка. Делайте на сокетах, они проще будут и быстрее
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Websocket - оптимально.
Но можно взять и LongPolling-решение: https://pastebin.com/af8hF88J

но прочитал что при такой реализации очень большая нагрузка на сервер и на базу.
добавляем состояние в общий кеш (на сервере) и при запросе - берём оттуда. Обновляем кеш (обращаемся снова к базе и т.д.) через определённое время (кол-во запросов тут роли не играет).

Также, выключайте таймер авто-обновления на клиенте, если вкладка не активна или долго нет событий от UI: не скроллят, "мышь" долго не двигается, нет ввода с клавиатуры и т.д. (т.е., режим screen-saver'а фактически нужно сделать)
Возобновляйте авто-обновление при появлении активности.
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
Вебсокет в плане ресурсов экономичнее.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы