События, отправляемые сервером (SSE)

Server-Sent Events позволяет серверу отправлять обновления клиенту без необходимости постоянного опроса со стороны клиента. Клиент отправляет один GET-запрос с Accept: text/event-stream; сервер поддерживает открытый ответ и записывает события по мере их возникновения, каждое в виде нескольких строк текста с необязательными полями id и event. Браузеры предоставляют доступ к этой функции через API EventSource.

Как это работает

Каждое событие представляет собой данные: строки, за которыми следует пустая строка. Если соединение обрывается, EventSource автоматически переподключается и отправляет идентификатор последнего зафиксированного события в заголовке Last-Event-ID, чтобы сервер мог возобновить работу без перерывов. Серверы периодически отправляют строки комментариев в качестве сигналов подтверждения активности, чтобы предотвратить закрытие неактивных соединений прокси-серверами.

Заблуждение

WebSocket всегда является лучшим выбором. SSE — это обычный HTTP — он проходит через прокси и балансировщики нагрузки, которые блокируют обновления WebSocket, не требует специального сервера и переподключается со встроенной функцией возобновления соединения. Для обновлений от сервера к клиенту, таких как уведомления, отслеживание прогресса и ленты новостей, это обычно более простой инструмент.

Попробуйте здесь.

Получайте ответы /streams/v1/events в формате JSON или, используя Accept: text/event-stream, в виде потока событий; отправляйте Last-Event-ID для продолжения работы после заданного события и POST /streams/v1/events для публикации.

Источники

Другие термины

Читать страницу на английском

Все термины · Приёмы тестирования · Все 39 mock REST API

Последнее обновление