Как подписаться на событие с помощью STOMP

В этой инструкции подробно описано, как подписаться на событие, генерируемое виртуальным устройством в AggreGate с помощью Postman и STOMP API. Сервер AggreGate в этом примере доступен на localhost, а целевым виртуальным устройством является users.admin.devices.virtual1. Очень важно, что сообщения, отправляемые через STOMP, должны придерживаться строгого формата и заканчиваться шестнадцатеричной последовательностью 0D 0A 0D 0A 00.

Инструкции

  1. Получите токен аутентификации:

  • Конечная точка: http://localhost:8080/rest/auth

  • Метод: POST

  • Тело (JSON):

    {
    "username":"admin",
    "password":"admin"
    }
  • Ответ (JSON): Вы получите объект JSON, содержащий токен аутентификации.

    {
       "token": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI4N2VhNjc4OS00MmFjLTQ4YzMtOGYwZS00YmU5YWE2MjU4MGEiLCJzdWIiOiJhZG1pbiIsImF1ZCI6ImFjY2VzcyIsImlhdCI6MTcyNTUyMjA3MSwiZXhwIjoxNzI1NTI1NjcxfQ.tOkBhfyPeKhoeNpsAXQMIsRDcz-bUafP42_k79E2_JE"
    }
  1. Настройте Postman для STOMP-соединений:

  • URL: wss://localhost:8443/rest/v1/stomp

  • Заголовки:

    • Ключ: Authorization

    • Значение: Bearer <token> (Замените <token> на токен, полученный на шаге 1).

  1. Установите соединение STOMP:

  • Нажмите кнопку "Connect" в Postman.

  1. Отправьте фрейм CONNECT:

  • Формат сообщения: Text

  • Тело сообщения:

    CONNECT
    Authorization:<token>

    (Замените <token> на токен из шага 1. Примечание: здесь не должно быть префикса "Bearer").

  • Нажмите кнопку "Отправить".

  1. Отправьте терминатор кадров:

  • Формат сообщения: Binary, Hexadecimal

  • Тело сообщения: 0D 0A 0D 0A 00

  • Нажмите кнопку "Отправить".

  1. Отправьте кадр SUBSCRIBE:

  • Формат сообщения: Text

  • Тело сообщения:

    SUBSCRIBE
    id:0
    destination:/v1/contexts/users.admin.devices.virtual1/events/event1
  • Нажмите кнопку "Отправить".

  1. Отправьте терминатор кадров (снова):

  • Формат сообщения: Binary, Hexadecimal

  • Тело сообщения: 0D 0A 0D 0A 00

  • Нажмите кнопку "Отправить".

  1. Сгенерируйте событие в AggreGate:

  • Используя интерфейс AggreGate, сгенерируйте событие Типа 1 для виртуального устройства "users.admin.devices.virtual1".

  1. Получите событие в Postman:

  • Postman получит кадр MESSAGE, содержащий данные события в формате JSON. В кадр войдут такие заголовки, как destination, content-type, subscription, message-id и content-length, а затем сами данные события.

Выполнив эти шаги, вы сможете успешно использовать Postman и STOMP для подписки на события AggreGate и получать информацию о данных вашей системы в реальном времени через API.

Was this page helpful?