使用通配符订阅MQTT主题

使用通配符订阅MQTT主题,mqtt,hivemq,Mqtt,Hivemq,我有一个MQTT客户机想要订阅以下主题 节点1/数据/更新 节点1/数据/增量 节点1/数据 当然,我有多个节点,因此我必须使用通配符,如下所述: 我尝试了以下主题名称 +/资料/+ +/资料/# +/数据(我是暴君) 使用上述表达式1和2,我没有收到主题节点1/数据的消息 有没有一种方法可以通过单个订阅实现这一点?假设我读的是正确的,那么选项2应该会起作用 例如,如果客户订阅“sport/tennis/player1/#”,则 将接收使用以下主题名称发布的消息: “运动/网球/运动员1” “

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

  • 节点1/数据/更新
  • 节点1/数据/增量
  • 节点1/数据
  • 当然,我有多个节点,因此我必须使用通配符,如下所述:

    我尝试了以下主题名称

  • +/资料/+
  • +/资料/#
  • +/数据(我是暴君)
  • 使用上述表达式1和2,我没有收到主题节点1/数据的消息

    有没有一种方法可以通过单个订阅实现这一点?

    假设我读的是正确的,那么选项2应该会起作用

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

    • “运动/网球/运动员1”
    • “运动/网球/运动员1/排名”
    • “运动/网球/球员1/得分/温布尔登”
    选项3绝对无效

    您是否尝试过使用mosquitto进行测试,以确定这是否是特定于hivemq的

    编辑:


    我已经用
    mosquitto_pub
    mosquitto_sub
    发布/订阅消息,并用选项2测试了这一点,它根据规范工作。

    感谢您的快速回答。我很自信。2也应该起作用。不幸的是,我刚刚重新测试了它,它不起作用。我订阅了主题“+/data/#”。然后我在“node1/data/update”上发布并收到消息(yay)。然后我发布了“node1/data”,但没有收到消息(否定)。似乎与HiveMQ相关:(还有其他建议吗?那么这是HiveMQ中的一个缺陷。您应该提出一个缺陷。我已使用公共HiveMQ代理(Broker.HiveMQ.com)对其进行了测试)和HiveMQ Community Edition。您使用的是哪个版本的HiveMQ?您还可以提供有关您正在使用的客户端的信息吗?我实际上不知道正在使用哪个代理()。这可能与代理有关吗?也许这是他们的自定义实现。我的客户端是MQTT3 HiveMQ Rx客户端。我将此答案标记为已接受,因为这实际上应该有效。谢谢(:这完全与代理有关,而不是与客户有关。
    hivemq
    标记暗示您使用的是代理,而不是客户(问题的措辞模棱两可)。如注释所示,HiveMQ代理似乎没有问题。您应该通知mdash他们的代理不符合规范。