开发者社区 > 云原生 > 云消息队列 > 正文

MQTT有没有办法订阅主题指点前缀的Tag?

MQTT有没有办法订阅主题指点前缀的Tag?

展开
收起
真的很搞笑 2024-01-04 09:27:14 183 0
3 条回答
写回答
取消 提交回答
  • 确实,MQTT支持订阅主题前缀的功能。您可以在订阅时使用通配符“+”和“#”,其中“+”表示一个层级的通配符,“#”表示多层级的通配符。例如,如果您想订阅以"/home/+"开头的所有主题,那么只需订阅"/home/+"即可。

    同时,MQTT还支持共享订阅和排他订阅。在共享订阅中,可以添加共享订阅前缀来实现一组订阅者的原始主题共享。例如,可以为三个订阅者订阅同一个主题"$share/g/topic",其中"$share/g/"是共享订阅的前缀,"topic"是它们订阅的真实主题名。

    对于排他订阅,这是EMQX支持的MQTT扩展功能。排它订阅允许对主题进行互斥订阅,即一个主题在同一时刻只允许存在一个订阅者。当且仅当当前订阅者未取消订阅时,其他订阅者才能订阅对应的主题。要进行排它订阅,需要在主题名称添加特定的前缀。

    2024-01-06 11:54:25
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,MQTT支持订阅主题的前缀。在MQTT协议中,可以使用通配符来匹配主题的前缀。例如,使用"+"可以匹配一个或多个字符,使用"#"可以匹配任意数量的字符。

    因此,如果你想要订阅以某个前缀开头的主题,可以在订阅时使用相应的通配符。例如,如果你想订阅所有以"sensor/temperature"开头的主题,可以使用以下订阅语句:

    mosquitto_sub -h <broker_address> -t 'sensor/temperature/+'
    

    这将订阅所有以"sensor/temperature"开头的主题,并接收它们的消息。

    2024-01-04 17:37:03
    赞同 展开评论 打赏
  • tag订阅是全字匹配的 ,此回答整理自钉群“阿里云 微消息队列 MQTT产品咨询群”

    2024-01-04 11:52:18
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载