当前位置: 首页 > news >正文

MQTT 发布/订阅模式介绍

MQTT 发布/订阅模式介绍

发布订阅模式(Publish-Subscribe Pattern)是一种消息传递模式,它将发送消息的客户端(发布者)与接收消息的客户端(订阅者)解耦,使得两者不需要建立直接的联系也不需要知道对方的存在。

MQTT 发布/订阅模式的精髓在于由一个被称为代理(Broker)的中间角色负责所有消息的路由和分发工作,发布者将带有主题的消息发送给代理,订阅者则向代理订阅主题来接收感兴趣的消息。

在 MQTT 中,主题和订阅无法被提前注册或创建,所以代理也无法预知某一个主题之后是否会有订阅者,以及会有多少订阅者,所以只能将消息转发给当前的订阅者,如果当前不存在任何订阅,那么消息将被直接丢弃。

MQTT 发布/订阅模式有 4 个主要组成部分:发布者、订阅者、代理和主题。

  • 发布者(Publisher)
    负责将消息发布到主题上,发布者一次只能向一个主题发送数据,发布者发布消息时也无需关心订阅者是否在线。
  • 订阅者(Subscriber)
    订阅者通过订阅主题接收消息,且可一次订阅多个主题。MQTT 还支持通过共享订阅的方式在多个订阅者之间实现订阅的负载均衡。
  • 代理(Broker)
    负责接收发布者的消息,并将消息转发至符合条件的订阅者。另外,代理也需要负责处理客户端发起的连接、断开连接、订阅、取消订阅等请求。
  • 主题(Topic)
    主题是 MQTT 进行消息路由的基础,它类似 URL 路径,使用斜杠 / 进行分层,比如 sensor/1/temperature。一个主题可以有多个订阅者,代理会将该主题下的消息转发给所有订阅者;一个主题也可以有多个发布者,代理将按照消息到达的顺序转发。
    MQTT 还支持订阅者使用主题通配符一次订阅多个主题。

image

MQTT 主题通配符(MQTT Wildcards)

MQTT 主题通配符包含单层通配符 + 及多层通配符 #,主要用于客户端一次订阅多个主题。

注意:通配符只能用于订阅,不能用于发布。

单层通配符

加号 (“+” U+002B) 是用于单个主题层级匹配的通配符。在使用单层通配符时,单层通配符必须占据整个层级,例如:

"+" 有效
sensor/+ 有效
sensor/+/temperature 有效
sensor+ 无效(没有占据整个层级)

如果客户端订阅了主题 sensor/+/temperature,将会收到以下主题的消息:

sensor/1/temperature
sensor/2/temperature
...
sensor/n/temperature
但是不会匹配以下主题:

sensor/temperature
sensor/bedroom/1/temperature

多层通配符

井字符号(“#” U+0023)是用于匹配主题中任意层级的通配符。多层通配符表示它的父级和任意数量的子层级,在使用多层通配符时,它必须占据整个层级并且必须是主题的最后一个字符,例如:

"#" 有效,匹配所有主题
sensor/# 有效
sensor/bedroom# 无效(没有占据整个层级)
sensor/#/temperature 无效(不是主题最后一个字符)
如果客户端订阅主题 senser/#,它将会收到以下主题的消息:

sensor
sensor/temperature
sensor/1/temperature

http://www.gsyq.cn/news/1536278.html

相关文章:

  • Windows Mobile短信管理工具的嵌入式优化实践
  • # 2026年国内广东广州等地泰茶培训公司实力排行榜:基于餐饮管理的十大权威推荐榜单 - 十大品牌榜
  • 如何用3个步骤拯救你的损坏视频?Untrunc开源工具深度解析
  • 2026年青岛LV包包回收测评:本地靠谱奢侈品变现渠道盘点 - 薛定谔的梨花猫
  • 2026手机靓号网推荐服务商排名 正规平台盘点 - 速递信息
  • 2026 亨得利腕表送修防骗全合集:线下假冒门店实地实测 + 正规授权网点查询步骤(值得保存收藏) - 亨得利官方维修中心
  • 2026年枣庄装修公司综合实力TOP5——本地靠谱家装企业深度测评 - 装企自媒体训练营辉哥
  • 2026年6月最新欧米茄中国官方售后网点服务地址与客户电话 - 欧米茄服务中心
  • 2026 深圳黄金回收榜单!五家靠谱门店全盘点 - 讯息早知道
  • # 2026年临沂空调安装师傅实力排行榜:兰山区河东区罗庄区等地5大品牌榜单 - 十大品牌榜
  • 2026年AI写作辅助网站推荐:9款高效AI工具终极指南
  • NarratoAI:AI智能视频解说解决方案,让创作效率提升10倍
  • 2026儿童影像服务旺季选店指南|西安适龄家庭优选榜单 - 江湖评测
  • 2026年郑州温泉泳池水处理设备选型指南:五大厂家对标与成本控制全解 - 年度推荐企业名录
  • input-overlay实战指南:三步解决直播输入可视化难题的终极方案
  • ASP.NET MVC架构本质与十年工程实践
  • 2026年永辉超市购物卡回收优质平台推荐榜|合规靠谱、高价极速变现实测排行 - 热点速览
  • 生产级RAG系统落地实战:延迟优化、数据漂移与向量检索稳定性
  • Windows 11 上 Rust 开发环境报错 `x86_64-w64-mingw32-gcc` 链接失败?别急着重装,试试这个 MSVC 一键切换方案
  • 常州正规实体黄金回收门店,实时大盘金价无隐形扣费 - 奢侈品回收测评
  • 5分钟获取免费OpenAI API密钥:开启零成本AI开发之旅
  • 2026 泉州防水补漏靠谱公司 TOP5 口碑榜:全屋漏水检修、卫生间免砸砖防水、楼顶外墙渗水、飘窗阳台漏水治理、地下室防潮、瓷砖空鼓翻新综合测评 - 泛家庭维修
  • FPGA实战(21):基于Verilog的可配置扫频信号发生器设计与验证
  • 苏州吴中区专业管道疏通 2026 真实评测最新综合排行榜 - 居顺联家政疏通
  • 2026年永州汽车贴膜门店服务细节横向观察 - 国麟测评
  • ControlNet-v1-1 FP16架构设计:Stable Diffusion 1.5高性能控制网络优化实战
  • 2026年郑州泳池温泉水处理设备厂家推荐:5大品牌深度横评与选购指南 - 年度推荐企业名录
  • 城关区豪兴宇:深耕西北二十余年的专业户外用品供应商 - 奔跑123
  • 猫抓浏览器扩展:终极免费资源嗅探工具,轻松下载网页媒体资源
  • 技术博客系统设计:静态站点+原子笔记+可扩展架构