MQTT 实践总结
QMQX 文档:https://www.emqx.io/docs/zh/latest/
MQTT 入门:https://www.emqx.com/zh/mqtt-guide
通过案例理解 MQTT 主题与通配符:https://www.emqx.com/zh/blog/advanced-features-of-mqtt-topics
① 为了避免歧义且易于理解,通常不建议主题以 / 开头或结尾,例如 /chat 或 chat/
② 不同于消息队列中的主题(比如 Kafka 和 Pulsar),MQTT 主题不需要提前创建。MQTT 客户端在订阅或发布时即自动的创建了主题,开发者无需再关心主题的创建,并且也不需要手动删除主题。
③ MQTT 主题通配符包含单层通配符 + 及多层通配符 #,主要用于客户端一次订阅多个主题。(注意:通配符只能用于订阅,不能用于发布。)
④ 井字符号(“#” U+0023)是用于匹配主题中任意层级的通配符。多层通配符表示它的父级和任意数量的子层级,在使用多层通配符时,它必须占据整个层级并且必须是主题的最后一个字符
⑤ 以 SYS/# 主题获取所有系统主题消息。详细请见:EMQX 系统主题文档。
⑦ 共享订阅是 MQTT 5.0 引入的新特性,用于在多个订阅者之间实现订阅的负载均衡,MQTT 5.0 规定的共享订阅主题以 $share 开头。
myhome/bedroom/temperature
myhome/bedroom/humidity
myhome/bedroom/airquality
myhome/livingroom/temperature
myhome/livingroom/humidity
myhome/livingroom/airquality
myhome/kitchen/temperature
myhome/kitchen/humidity
myhome/kitchen/airquality
订阅 myhome/bedroom/+ 主题获取卧室的温度、湿度及空气质量数据,
订阅 myhome/+/temperature 主题获取三个房间的温度数据,订阅 myhome/# 获取所有的数据。
与rabbitmq的匹配符类似 例如 ”abc.#” 匹 配 ”abc.def.ghi” , ”abc.” 只 匹配”abc.def”。
QoS(Quality of Service)即服务质量
QoS 0:消息最多传送一次。如果当前客户端不可用,它将丢失这条消息。
QoS 1:消息至少传送一次。
QoS 2:消息只传送一次。
遗嘱消息,保留消息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结