使用通配符订阅 MQTT 主题

Flo*_*sen 5 mqtt hivemq

我有一个 MQTT 客户端想要订阅以下主题

  1. 节点1/数据/更新
  2. 节点1/数据/增量
  3. 节点1/数据

当然,我有多个节点,所以我必须使用通配符,如下所述: https: //www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices/

我尝试了以下主题名称

  1. +/数据/+
  2. +/数据/#
  3. +/data#(我很绝望)

使用上述表达式 1 和 2,我没有收到主题 node1/data 的消息。

有没有办法通过单个订阅来做到这一点?

har*_*llb 5

假设我正在阅读规范,选项 2 应该可以工作。

\n\n
\n

例如,如果客户端订阅 \xe2\x80\x9csport/tennis/player1/#\xe2\x80\x9d,它将收到使用以下主题名称发布的消息:

\n\n
    \n
  • \xe2\x80\x9csport/网球/player1\xe2\x80\x9d
  • \n
  • \xe2\x80\x9csport/网球/player1/排名\xe2\x80\x9d
  • \n
  • \xe2\x80\x9csport/网球/player1/score/温布尔登\xe2\x80\x9d
  • \n
\n
\n\n

选项3肯定是无效的。

\n\n

您是否尝试过使用 mosquitto 进行测试以查看这是否是 hivemq 特定的?

\n\n

编辑:

\n\n

我已经mosquito使用mosquitto_pub和测试了这一点mosquitto_sub,并且使用选项 2 它可以根据规范工作。

\n

  • 我已经使用公共 HiveMQ Broker (broker.hivemq.com) 和 HiveMQ 社区版对其进行了测试,并且它有效。您使用的是哪个版本的 HiveMQ?您还可以提供有关您正在使用的客户端的信息吗? (3认同)