Echolot
Запросы

WebSocket и SSE

Подключайтесь к серверам WebSocket, отправляйте сохранённые и разовые сообщения и следите за потоками server-sent events по мере их поступления.

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

Запросы WebSocket

Realtime › Order updates, подключённый к демо-API: вкладка «Сообщения» с сохранёнными сообщениями Subscribe и Ping и журнал сообщений в области ответа с отправленными и полученными событиями заказов

Подключение

  1. Выберите Файл › Новый запрос WebSocket или Новый запрос WebSocket в меню + рядом с Запросы в боковой панели.
  2. Введите адрес, начинающийся с ws:// или wss://. Realtime › Order updates в Alpenglow использует {{wsURL}}/orders, то есть wss://demo.echolot.dev/v1/orders.
  3. Выберите Соединить (⌘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, отправленный на демо-API: вкладка «События» области ответа с пронумерованными событиями, у каждого имя события, идентификатор и данные JSON
  1. Откройте Realtime › Order events в рабочем пространстве Alpenglow. Он отправляет GET {{baseURL}}/orders/events с Accept: text/event-stream.
  2. Выберите Отправить.
  3. Выберите вкладку События в области ответа.

Вкладка События перечисляет события по порядку, с номерами, именем события и его идентификатором (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.

На этой странице