Server push vs server sent events — что выбрать?

Есть 2 части приложения: приватная (админка) и публичная, где пользователь делает заказ.

Задача: когда пользователь делает заказ, нужно сказать клиенту (FE) в админке, чтобы тот перевызвал определенный эндпоинт со стороны бэка.

Как я это вижу:
1. У администратора открыт список заказов
2. Пользователь делает заказ
3. Отправляется сообщение с back-end на front-end
4. Front-end понимает, что нужно перевызвать список заказов
5. Перевызывает, на этом все.

Как я понял, если что, поправьте меня, сделать это можно через SSE для HTTP1 или через server push HTTP2 (сокеты пока не рассматриваю принципиально).

Какие подводные камни и что выбрать для реализации подобной задачи? (как я понял, для SSE основная проблема - 6 каналов - возможно, существует способ сделать все через один канал, но как я понял - если открыть 6 вкладок браузера - это и будет равняться использованию максимальному количеству каналов)

Что важно, уведомление администратору делать не нужно, просто обновить в фоне данные -все.
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
ServerPush из HTTP/2 не имеет никакого отношения к данным, вы не можете с его помощью в произвольный момент отправить клиенту условный json. Соответственно, как ваш js поймёт, что надо перевызвать список заказов?
Единственное, что приходит в голову - пушить js-файл с window.reload() внутри, но это такой тупой костыль, что я даже и не знаю...
Плюс, использование SP подразумевает, что у вас всё это время открыто соединение и сервер может отправить клиенту команду на загрузку файла. А это значит, что условный PHP тут уже не подходит.

Для решения этой задачи надо использовать сокеты или периодические запросы с клиента на сервер за статусом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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