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 天前
IoT物联网系统定制落地实践:从设备接入、协议网关、平台分层到业务应用,如何做技术选型、交付验收、责任边界与长期运维成本评估及迁移安排
物联网·iot·成本分析
华允物联-HUAIOT3 天前
工业路由器和DTU在联网方式上的区别
物联网
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
码流子3 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
绿蕉3 天前
配电房的“AI听诊师”:可视化声纹局放智能巡检系统与通讯保障
物联网
chshang19923 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
做萤石二次开发的哈哈3 天前
海康商用音频主机接入萤石蓝海 AIoT:多路拾音、矩阵路由、分区广播、应急广播四类技能,IP 网络广播系统多端开发实战
物联网·音频矩阵·萤石开放平台·ip网络广播·蓝海aiot一站式工作台·aiot开发·公共广播
wuyk5553 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
CServer_013 天前
开源!混合存储底座+湖仓一体的AI数据中台
物联网·制造
数字新视界3 天前
数据中心基础设施管理系统的智能监测与运维整合剖析
数据库·物联网·数据中心·数据中心基础设施管理·dcim管理系统