IoT 物联网 MQTT 协议 5.0 版本新特性

MQTT 是一种基于发布/订阅 模式的轻量级消息传输协议,专门为设备资源有限和低带宽、高延迟的不稳定网络环境的物联网场景应用 而设计,可以用极少的代码为联网设备提供实时可靠的消息服务。MQTT 协议广泛应用于智能硬件、智慧城市、智慧农业、智慧医疗、新零售、新能源、新金融、车联网等物联网领域。

01

MQTT 协议发展史

MQTT 是在上世纪 90 年代末由 IBM 的 Andy Stanford-Clark 博士和 Arcom的 Arlen Nipper 开发,用于通过卫星网络监测石油管道。

2014 年发布 MQTT v3.1.1 版,增强了其清晰性和互操作性。它能够在资源有限的网络上高效地传输消息,因此在物联网应用中广受欢迎。

2019 年发布了 MQTT v5.0 版,在 v3.1.1 版本基础上增加了会话过期间隔原因代码主题别名用户属性、订阅选项指定请求/响应共享订阅等更加符合现代物联网应用需求的特性,提高了大型系统的性能、稳定性与可扩展性,逐渐成为众多物联网企业的首选通信协议。

02

MQTT 5.0 新特性

会话过期间隔:管理会话的生命周期

基于 MQTT 5.0 ,客户端通过Clean Start 与 Session Expiry Interval 指定服务器在客户端断开连接后应将会话保持多长时间。也就是说,您可以指定一个具体的时间段,在网络断开再连接后,会话仍然有效。这样可以更灵活地管理会话的生命周期,并节省服务器的资源。

原因代码: 了解断开连接或失败原因

在 MQTT 5.0 中,可用的 Reason Code 被扩充到了 43 个,并且规定了Reason Code < 0x80 用于表示成功,Reason Code ≥ 0x80 则用于表示失败,从而帮助我们了解断开连接或发生故障的原因。比如,如果客户端连接服务器失败,服务器会返回一个原因代码,解释连接不成功的原因,比如登录凭证错误或者服务器不在线。

主题别名:减少消息头部的开销

在 MQTT 5.0 中,引入了主题别名 ( Topic Alias ),你可以为主题分配一个简短的数字别名。这个别名可以在后续的消息中替代完整的主题名称,大大减少了 MQTT 头部的大小,从而节省了网络带宽。

用户属性:MQTT 头部自定义元数据

在 MQTT 5.0 中,引入了用户属性(User Properties)其实是一种自定义属性,允许用户向 MQTT 消息添加自己的元数据,传输额外的自定义信息以扩充更多应用场景,比如消息的时间戳、设备位置或其他应用相关的数据,从而增加了 MQTT 消息传输的灵活性和控制力。

订阅选项:细粒度的订阅控制

在 MQTT 5.0 中,提供了 4 个订阅选项,分别是 QoS、No Local、Retain As Published、Retain Handling,用来指定如何接收每个订阅主题的消息。比如,客户端可以指定他们是否接收某个订阅的保留消息,或者是否接收和订阅具有相同 QoS 级别的消息。

指定请求/响应:允许客户端回复指定主题

在 MQTT 5.0 中,引入了响应主题 (Response Topic)、关联数据 (Correlation Data) 和响应信息 (Response Information) ,请求方可以在请求消息中指定自己期望的响应属性,从而使客户端和服务器之间的通信变得更高效和简洁。

共享订阅:订阅者负载均衡功能

在 MQTT 5.0 中共享订阅特性使得多个客户端可以共享一个订阅,在使用共享订阅的客户端之间均衡地分配消息负载。也就是,当一条消息发布到一个共享主题时,服务器会把消息分发给共享订阅中的某个客户端,从而实现消息的负载均衡。

相关推荐
做萤石二次开发的哈哈3 小时前
萤石蓝海 AIoT 一站式工作台:海康LCD会议平板接入,多端大屏运维应用一站生成
运维·物联网·电脑·萤石开放平台·会议室管理·蓝海aiot一站式工作台·otap物模型
李永奉4 小时前
中科蓝讯SDK开发-提示音音频文件格式转换和压缩教程
网络·单片机·嵌入式硬件·mcu·物联网
TDengine (老段)4 小时前
TDengine 错误处理 — 错误码、异常传播、故障恢复
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
虎王物联4 小时前
Docker BuildKit多阶段构建:IoT固件交叉编译流水线实战
运维·物联网·ci/cd·docker·容器·物联网嵌入式
一只鹿鹿鹿5 小时前
水利信息化建设项目物联网(视频监控系统)施工方案(Word)
物联网·安全·web安全·系统安全
淡淡的香烟5 小时前
Androidiot开发之猫脸识别
android·物联网
TDengine (老段)14 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
智购科技自动贩卖机16 小时前
自动售货机嵌入式状态机设计实战:从45个事件源到层次型状态机的工程重构
大数据·人工智能·stm32·物联网·重构·硬件架构
SL-staff21 小时前
工业物联网中网关子设备数据通信盲区的排查与解决方法
大数据·物联网·工业物联网·数据映射·网关配置·规则联动·通信盲区
数字新视界1 天前
国产化动环技术赋能数据中心智能监控新模式
物联网·数据中心·动环监控系统·动力与环境监控系统·机房动环监控