API командования и управления Hono не получает сообщения

Я пытаюсь подписаться на контрольную тему. Адаптер mqtt показывает следующую регистрацию, когда я подписываюсь:

14:28:47.933 [vert.x-eventloop-thread-0] DEBUG o.e.h.a.m.i.VertxBasedMqttProtocolAdapter - created subscription [tenant: tenant_aloxy, device: device-aloxy, filter: control/tenant_aloxy/device-aloxy/req/#, requested QoS: AT_MOST_ONCE, granted QoS: AT_MOST_ONCE]

Когда я публикую сообщения в control /tenant_aloxy/device-aloxy/req//alp, устройство не получает сообщение, и я не получаю никаких сообщений об ошибках в адаптере hono mqtt. Однако, когда я подписываюсь на тему самостоятельно, используя следующую команду: qb message receive control/tenant_aloxy/device-aloxy/req/# -b amqp://user:secret@hostname:5672 Я получаю сообщения. Есть идеи, где искать?

Версия Hono, которую я сейчас использую, взята с коммита https://github.com/eclipse/hono/commit/78979346212446dc6cf8b8b3255f048e19e81210

ОБНОВИТЬ
Я обновил Hono до версии 0.9-M2 и все еще имею ту же проблему. Регистрация при подписке следующая:

12:21:02.407 [vert.x-eventloop-thread-0] INFO  o.e.h.s.m.LoggingConnectionEventProducer -    Connected - ID: device_interface_client_b24704c9-ed11-41af-a0e0-ba90264a7362, Protocol Adapter: hono-mqtt, Device: device [device-id: device-aloxy, tenant-id: tenant_aloxy], Data: null
12:21:02.515 [vert.x-eventloop-thread-0] DEBUG o.e.h.client.impl.AbstractHonoClient - receiver open [source: control/tenant_aloxy/device-aloxy]
12:21:02.515 [vert.x-eventloop-thread-0] DEBUG o.e.hono.client.CommandConsumer - successfully created command consumer [control/tenant_aloxy/device-aloxy]
12:21:02.517 [vert.x-eventloop-thread-0] DEBUG o.e.h.a.m.i.VertxBasedMqttProtocolAdapter - created subscription [tenant: tenant_aloxy, device: device-aloxy, filter: control/+/+/req/#, requested QoS: AT_MOST_ONCE, granted QoS: AT_MOST_ONCE]

Я публикую свои сообщения в очереди управления /tenant_aloxy/device-aloxy/req//alp

ОБНОВЛЕНИЕ 2
Я обнаружил что-то странное. На следующем скриншоте показаны метрики с большой точки зрения:

Это показывает, что несколько сообщений были опубликованы в очереди, но были отклонены адаптером Hono MQTT. Тем не менее, я не вижу никаких журналов для этих сообщений в консоли, хотя SPRINT_PROFILE "dev" активирован.

2 ответа

Решение

Я думаю, что вы публикуете не по адресу. Также имейте в виду, что приложения, отправляющие команды, не публикуют тему (это MQTT parlais), а вместо этого отправляют сообщение AMQP на удаленный узел, который идентифицируется по адресу.

Тем не менее, ваше приложение должно отправить команду по ссылке отправителя с целевым адресом control/tenant_aloxy/device-aloxy (см. Предварительные условия https://www.eclipse.org/hono/api/command-and-control-api/). Обратите внимание, что целевой адрес отличается от имени темы MQTT, на которое подписывается устройство.

Если вы ожидаете ответа, вам также необходимо открыть ссылку на получателя и включить исходный адрес ссылки получателя в качестве значения свойства reply-to в командном сообщении (как описано в https://www.eclipse.org/hono/api/command-and-control-api/).

Устройство, прошедшее проверку подлинности, должно использовать фильтр тем control/+/+/req/# подписаться на команды. Если устройство не аутентифицировано, то control/${tenant-id}/{device-id}/req/# использоваться.

Если устройство device-aloxy авторизован, тогда подпишитесь на тему control/+/+/req/# и попробуйте отправить команды.

Другие вопросы по тегам