API командования и управления Hono не получает сообщения - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь подписаться на контрольную тему.Когда я подписываюсь, адаптер 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 из commit 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
Я обнаружил что-то странное.На следующем снимке экрана показаны метрики с большой точки зрения: Enmasse view on connection

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

Ответы [ 2 ]

0 голосов
/ 28 января 2019

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

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

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

0 голосов
/ 25 января 2019

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

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

...