Как обработать неверный LAST-EVENT-ID на стороне сервера, когда клиент отправляет запрос на отправленные сервером события (запрос SSE)? - PullRequest
0 голосов
/ 21 июня 2019

У нас есть реализация сервера в akka-http на scala конечной точки Server Sent Events. Каждый запрос поставляется с заголовком last-event-id, который является timeuuid события, которое было в последний раз синхронизировано с клиентом. Если по каким-либо причинам соединение потеряно, клиент повторно соединяется с последним идентификатором события. На стороне сервера мы проводим проверку, чтобы ограничить ID последнего события событиями в течение последних 24 часов и только затем отвечать на запрос. Но иногда нет событий более одного дня, поэтому сервер не отправляет события клиенту. В таких случаях последнее синхронизированное событие должно быть старше 24 часов. Теперь, если соединение является разорванным, и клиент устанавливает соединение с более старым последним идентификатором события, сервер отправляет ответ 412. Клиентская библиотека, которую мы используем Alpakka EventSource, считает это ошибкой и продолжает повторять запрос. Мы хотим знать 2 вещи: 1. Как сервер должен обрабатывать неверный идентификатор последнего события, отправленный в заголовке? Он может игнорировать это или отбросить ответ об ошибке. Каков наилучший способ сделать это. В стандартах w3 нет ничего такого, что говорило бы об этом.

2.Что должен делать клиент в таких случаях? должен ли я повторить попытку, как это делает библиотека alpakka, или она должна повторяться только при определенных ошибках, а не при каждой ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...