使用通配符预订MQTT主题

时间:2019-07-30 12:47:24

标签: mqtt hivemq

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

  1. node1 / data / updates
  2. node1 / data / delta
  3. node1 / data

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

我尝试了以下主题名称

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

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

是否可以通过单个订阅来完成此操作?

1 个答案:

答案 0 :(得分:3)

假设我阅读的是spec,那么选项2应该起作用。

  

例如,如果客户订阅“ sport / tennis / player1 /#”,则它   会收到使用以下主题名称发布的消息:

     
      
  • “运动/网球/玩家1”
  •   
  • “运动/网球/球员1 /排名”
  •   
  • “运动/网球/球员1 /得分/温网”
  •   

选项3绝对无效。

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

编辑:

我已经使用mosquitomosquitto_pub通过mosquitto_subgit reset进行了测试,以发布/订阅消息,并且使用选项2可以根据规范工作。