首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未接收消息的Hono命令和控制API

未接收消息的Hono命令和控制API
EN

Stack Overflow用户
提问于 2019-01-25 15:14:36
回答 2查看 199关注 0票数 0

我正在尝试订阅控制主题。当我订阅时,mqtt适配器显示了以下日志记录:

代码语言:javascript
复制
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]

当我将消息发布到控制/tenant_aloxy/ device -aloxy/req//alp时,设备不会收到消息,也不会在hono适配器中获得任何错误日志记录。但是,当我自己使用以下命令订阅主题时: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版本,但仍然存在相同的问题。订阅时的日志记录如下:

代码语言:javascript
复制
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适配器拒绝。但是,虽然SPRINT_PROFILE "dev“被激活,但我在控制台中没有看到这些消息的任何日志记录。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-28 13:27:10

我认为你的出版地址错了。还请记住,发送命令的应用程序不是发布到主题(即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
EN

Stack Overflow用户

发布于 2019-01-25 16:30:57

经过身份验证的设备必须使用主题筛选器control/+/+/req/#订阅命令。如果该设备未经身份验证,则使用control/${tenant-id}/{device-id}/req/#

如果对设备device-aloxy进行了身份验证,则订阅主题control/+/+/req/#并尝试发送命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54368063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档