Echolot
Запросы

MQTT

Подключайтесь к брокеру MQTT 3.1.1 или 5.0, подписывайтесь на топики с нужным QoS, публикуйте сообщения и следите за ними в журнале.

Запрос MQTT подключается к брокеру, подписывается на фильтры топиков и публикует сообщения. Он остаётся подключённым, пока вы работаете, а журнал показывает каждое сообщение в топиках, за которыми вы следите. Echolot поддерживает MQTT 3.1.1 и 5.0.

Realtime › Warehouse sensors, подключённый к локальному брокеру: вкладка «Подписка» с warehouses/+/temperature на QoS 1 и журнал сообщений с показаниями температуры по топикам

Попробуйте на Alpenglow

Realtime › Warehouse sensors подключается к локальному брокеру на localhost из папки examples/servers репозитория документации (bun run realtime).

Подключение

  1. Выберите Файл › Новый запрос MQTT или Новый запрос MQTT в меню + рядом с Запросы в боковой панели.
  2. Введите адрес брокера.
  3. Выберите протокол в меню значка MQTT перед адресом: MQTT 5.0 (по умолчанию) или MQTT 3.1.1.
  4. Выберите Соединить (⌘R). Пока соединение установлено, кнопка называется Отключиться.
АдресПодключается поПорт по умолчанию
mqtt://brokerTCP1883
mqtts://brokerTLS8883
ws://brokerWebSocket, путь /mqtt, если в адресе нет другогоКак у любого адреса ws://
wss://brokerWebSocket поверх TLS, путь /mqtt, если в адресе нет другогоКак у любого адреса wss://

В адресе работают {{variables}}: запрос датчиков Alpenglow использует mqtt://{{mqttHost}}.

В редакторе есть вкладки: Документация, Подписка, Публикация, Подключение, Авторизация, Переменные, Тесты, Скрипты и Настройки. Настройки вроде проверки TLS, прокси и сертификатов применяются так же, как для запросов HTTP.

Имя пользователя и пароль

Имя пользователя и пароль MQTT — это Basic-авторизация запроса на вкладке Авторизация. Храните пароль в секретной переменной, например {{mqttPassword}}, чтобы он оставался в Связке ключей и не попадал в файл запроса. Как и любую авторизацию, её можно задать один раз для папки или рабочего пространства. Другие виды авторизации для MQTT не применяются.

Подключение (вкладка)

Вкладка Подключение содержит остальное из CONNECT:

ПолеЧто делает
ID клиентаИдентификатор клиента, с {{variables}}. Если пусто, используется echolot- и случайный суффикс
Чистый старт (5.0) или Чистый сеанс (3.1.1)Начать без подписок и сообщений, которые брокер сохранил для этого ID клиента. По умолчанию включено
Keep aliveСекунды между пингами; 0 — без пингов. По умолчанию 60
ЗавещаниеОпубликовать завещание при обрыве подключения с Топиком завещания, Нагрузкой завещания, QoS и Retain: сообщение, которое брокер публикует, когда клиент пропадает, не попрощавшись

Подписка

Вкладка Подписка перечисляет фильтры топиков, на которые подписан запрос:

  1. Введите фильтр в поле внизу, например warehouses/+/temperature. + соответствует одному уровню, а # — всему остальному, как в logs/#.
  2. Выберите QoS 0, QoS 1 или QoS 2.
  3. Выберите Подписка, чтобы подписаться один раз, или +, чтобы сохранить фильтр вместе с запросом.

Сохранённые фильтры с отметкой Подписаться при подключении подписываются при каждом подключении запроса: в приложении, в прогонах, из командной строки и для агентов. Пока соединение установлено, у каждого сохранённого фильтра есть кнопки Подписка и Отписаться. В MQTT 5.0 No Local исключает сообщения, которые клиент публикует сам.

Публикация

Вкладка Публикация отправляет сообщения:

  1. Введите топик и нагрузку. В обоих полях работают {{variables}}.
  2. Выберите QoS и отметьте Retain, чтобы попросить брокера хранить сообщение для последующих подписчиков.
  3. Выберите Публикация.

Выберите +, чтобы сохранить сообщение вместе с запросом. Сохранённые сообщения с отметкой Публиковать в прогонах публикуются по порядку, когда запрос запускается без вас. Прогон и командная строка подключаются, подписываются на включённые фильтры, публикуют включённые сообщения, слушают 10 секунд и закрывают соединение.

Журнал сообщений

Вкладка Сообщения области ответа показывает сеанс: полученные и опубликованные сообщения, подписки и подтверждения брокера, самые новые последними, каждое со временем и размером.

  • Сообщение показывает свой топик, QoS, было ли оно сохранённым (retained) и идентификатор пакета.
  • Все топики сужают журнал до одного топика.
  • Все, Отправлено и Получено фильтруют по направлению; Фильтр сообщений находит сообщения по тексту.
  • Ещё форматирует нагрузку JSON с отступами.
  • Первая строка сообщает, какой ID клиента подключился и по какому протоколу, а также сохранил ли брокер сеанс с прошлого раза. Когда брокер отключает клиента, журнал объясняет причину кодом причины MQTT.

Доставки QoS 1 и 2 подтверждаются за вас в обе стороны.

Когда соединение закрывается, сеанс сохраняется в Истории, а журнал становится телом ответа, так что проверки на Тело работают с ним.

MQTT 5.0

Коды причин брокера показываются в журнале по именам, а также при отказе в подключении, например Success или Not authorized, в обеих версиях. Если выбран MQTT 5.0:

  • No Local в подписке исключает собственные сообщения этого клиента.
  • Чистый старт заменяет Чистый сеанс из 3.1.1.
  • Сохранённое сообщение может нести тип содержимого (content-type в файле запроса), который отправляется как свойство Content Type.

Из командной строки

echolot mqtt subscribe и echolot mqtt publish общаются с брокером из терминала, а пароль берут из ECHOLOT_MQTT_PASSWORD. См. echolot mqtt.

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