WebSocket и SSE
Подключайтесь к серверам WebSocket, отправляйте сохранённые и разовые сообщения и следите за потоками server-sent events по мере их поступления.
Запросы WebSocket открывают соединение, которое остаётся активным: вы отправляете сообщения и видите сообщения сервера по мере их прихода. Server-sent events (SSE) — это обычные запросы HTTP, ответ на которые продолжает поступать потоком; Echolot показывает каждое событие по мере поступления.
Запросы WebSocket

Подключение
- Выберите Файл › Новый запрос WebSocket или Новый запрос WebSocket в меню + рядом с Запросы в боковой панели.
- Введите адрес, начинающийся с
ws://илиwss://. Realtime › Order updates в Alpenglow использует{{wsURL}}/orders, то естьwss://demo.echolot.dev/v1/orders. - Выберите Соединить (⌘R).
Пока соединение открыто, кнопка называется Отключиться (снова ⌘R). При активном защищённом окружении она называется Соединиться с Production… (с именем этого окружения) и сначала спрашивает подтверждение. См. защищённые окружения.
В редакторе есть вкладки: Документация, Сообщения, Заголовки, Параметры, Авторизация, Переменные, Тесты, Скрипты и Настройки. Заголовки, параметры запроса и авторизация уходят с начальным рукопожатием (обновлением HTTP), так что сервер, которому нужен токен в заголовке или адресе, получает его там. Настройки вроде проверки TLS, прокси и сертификатов применяются так же, как для запросов HTTP.
Подпротоколы
Вверху вкладки Сообщения поле Подпротоколы перечисляет протоколы, которые нужно предложить серверу, через запятую,
например graphql-ws, chat.v2. Оставьте пустым, если подпротоколов нет.
Отправка сообщений
Внизу вкладки Сообщения введите сообщение и выберите Отправить (⇧⌘↩). В нём
работают {{variables}}. Пока соединение не открыто, в поле написано Подключитесь, чтобы отправлять сообщения.
Сообщения, которые вы отправляете часто, можно сохранить вместе с запросом. Выберите + рядом с полем, чтобы сохранить набранное. У каждого сохранённого сообщения есть имя, текст и собственная кнопка Отправить. В Order updates их два:
{"op":"subscribe","channel":"orders"}{"op":"ping"}Флажок в начале сохранённого сообщения, Отправлять в прогонах, решает, будет ли оно отправляться, когда запрос выполняется без вас: в Прогоне, из командной строки или для агента. Они отправляют включённые сообщения по порядку после подключения, затем слушают 10 секунд и закрываются.
Журнал сообщений
Вкладка Сообщения области ответа показывает сеанс по ходу дела: каждое сообщение в обе стороны, самые новые последними, с временем и размером, а также моменты открытия и закрытия соединения.
- Все, Отправлено и Получено фильтруют по направлению.
- Фильтр сообщений находит сообщения по тексту.
- Ещё показывает сообщение JSON с отступами; Свернуть снова сворачивает его.
- Кнопка копирования копирует сообщение.
Echolot сам отвечает на пинги сервера. Сообщение, склеенное из фрагментов, может быть размером до 64 МБ; большее закрывает соединение с кодом 1009.
Когда соединение закрывается, сеанс сохраняется в Истории: рукопожатие как запрос, а журнал сообщений как тело ответа.
Server-sent events
Поток server-sent events — это ответ HTTP типа text/event-stream, который продолжает присылать события. Используйте для
него обычный запрос HTTP: кроме адреса, настраивать нечего.

- Откройте Realtime › Order events в рабочем пространстве Alpenglow. Он отправляет
GET {{baseURL}}/orders/eventsсAccept: text/event-stream. - Выберите Отправить.
- Выберите вкладку События в области ответа.
Вкладка События перечисляет события по порядку, с номерами, именем события и его идентификатором (id:), а данные —
в виде JSON, если это JSON. Она следует за новыми событиями, пока идёт поток, и считает их. Вкладка Тело показывает
поток так, как его записал сервер, и растёт по мере поступления.
Поток идёт, пока его не завершит сервер или вы не выберете Отменить (⌘.); то, что пришло, сохраняется. Когда поток начался, общий тайм-аут запроса на него больше не действует. В прогонах, из командной строки и для агентов поток завершается через 10 секунд.
Чтобы возобновить поток с места остановки, отправьте идентификатор последнего события обратно в заголовке
Last-Event-ID. Поток демо-API отправляет 20 событий с интервалом в секунду, затем end и учитывает Last-Event-ID.
Подписки GraphQL по HTTP тоже используют server-sent events: см. GraphQL.
Из командной строки
echolot send открывает сеансы WebSocket и Socket.IO и следит за потоками событий из терминала. См.
echolot send и руководство по realtime.

