Выбор ответа Middle WebSocket и SSE обновлено
Реконнект в EventSource
Вопрос
Соединение EventSource оборвалось. Что сделает браузер?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сам переподключится через паузу и пришлёт Last-Event-ID с id последнего события. Автореконнект встроен в EventSource: задержку можно задать полем retry: в потоке.
Варианты ответа
- Сам переподключится через паузу и пришлёт
Last-Event-IDс id последнего событияправильный ответ - Ничего: переподключение нужно писать вручную, как у WebSocket, через обработчик
close - Выбросит необработанное исключение в консоль и закроет объект без события
error - Переподключится, а все пропущенные события сервер обязан дослать автоматически
Разбор
Автореконнект встроен в EventSource: задержку можно задать полем retry: в потоке. Если события имели id:, браузер пришлёт Last-Event-ID. А вот досылка пропущенного это работа вашего сервера: браузер только передаёт id, сам он ничего не восстановит. У WebSocket встроенного реконнекта нет, а у EventSource есть. Исключения и закрытия вкладки нет, срабатывает событие error.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.