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

bc0c2b36c46a9711d010fc428b5007c1.jpeg

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GAMES101-Assignment5

一、问题总览 在这次作业中&#xff0c;要实现两个部分&#xff1a;光线的生成和光线与三角的相交。本次代码框架的工作流程为&#xff1a; 从main 函数开始。我们定义场景的参数&#xff0c;添加物体&#xff08;球体或三角形&#xff09;到场景中&#xff0c;并设置其材质&…

项目管理:风险的来源及管理方法

项目风险是项目管理中的难点之一&#xff0c;虽然我们无法将其完全消除&#xff0c;但可以提前做好准备&#xff0c;将风险降至最低。 项目风险如同暗礁潜伏&#xff0c;你和团队需时刻保持警惕。以下几种风险需特别关注&#xff1a; 措施不足&#xff1a;成本与行动的误差&…

加速科技ST2500 数模混合信号测试设备累计装机量突破500台!

国产数字机&#xff0c;测试中国芯&#xff01;新年伊始&#xff0c;国产半导体测试设备领军企业加速科技迎来了振奋人心的一刻&#xff0c;ST2500 数模混合信号测试设备累计装机量突破500台&#xff01;加速科技凭借其持续的创新能力、完善的解决方案能力、专业热忱的本地化服…

软件定义存储

软件定义存储源于VMware公司于2012年提出的软件定义的数据中心&#xff08;SDDC&#xff09;。存储作为软件定义的数据中心不可或缺的一部分&#xff0c;其以虚拟化为基础&#xff0c;但又不仅限于虚拟化。存储虚拟化一般只能在专门的硬件设备上应用&#xff0c;很多设备都是经…

笔记本摄像头模拟监控推送RTSP流

使用笔记本摄像头模拟监控推送RTSP流 一、基础安装软件准备 本文使用软件下载链接:下载地址 FFmpeg软件: Download ffmpeg 选择Windows builds by BtbN 一个完整的跨平台解决方案&#xff0c;用于录制、转换和流式传输音频和视频。 EasyDarwin软件&#xff1a;Download Easy…

企业小文件多传输慢怎么办?怎么解决海量小文件传输慢的问题?

在当今信息时代&#xff0c;许多企业在文件传输过程中普遍面临一个棘手问题——小文件传输缓慢。这不仅对企业工作效率产生不良影响&#xff0c;还可能导致运营成本增加以及数据遗失与损坏的风险。那么&#xff0c;企业应该如何解决海量小文件传输缓慢的问题呢&#xff1f;本文…

高压MOS在适配器产品上的应用-REASUNOS瑞森半导体

一、适配器定义 电源适配器&#xff0c;英文Adapter通常指AC-DC&#xff08;由交流输入转换为直流输出&#xff09;的开关电源&#xff1b;一般由控制 IC、MOS管、整流肖特基管、电阻电容、磁性材料、DC 线、外壳等元器件及部件组成&#xff0c;通过整流、变压和稳压等转换形式…

第1章 引言

目录 1. 鸢尾花分类1.1 初识数据1.2 衡量模型是否成功&#xff1a;训练数据与测试数据1.3 要事第一&#xff1a;观察数据1.4 构建第一个模型&#xff1a;k近邻算法&#xff08;KNeighborsClassifier&#xff09;1.5 做出预测&#xff08;predict&#xff09;1.6 评估模型 1. 鸢…

【51单片机】延时函数delay的坑——关于无符号整型数据for语句“x >= 0“变成死循环

请认真看看以下延时函数是否正确&#xff0c;并且指出错误&#xff1a;&#xff08;考考C语言功底&#xff09; void delay_ms(unsigned int xms) //delay x ms {unsigned int x,y;for(xxms;x>0;x--)for(y124;y>0;y--); }废话少说&#xff0c;上正确代码&#xff1a; v…

linux ftp服务选择与ftp(vsftpd,Pure-FTPd)服务安装使用教程

一 linux ftp常用的服务软件 在Linux系统中&#xff0c;最常用的ftp有vsftpd&#xff0c;Pure-FTPd&#xff0c;ProFTPd&#xff0c;Wu-FTPd&#xff0c;glftpd&#xff0c;他们的特性优缺点如下对比图&#xff1a; 常用的5款linux ftp对比图&#xff1a; 软件特性优点缺点vsf…

unity C#中使用ref、out区别和使用案例

文章目录 ref 关键字out 关键字 在Unity&#xff08;以及C#编程语言中&#xff09;&#xff0c; ref 和 out 都是用来传递参数的引用&#xff0c;这意味着它们允许函数修改实参变量&#xff0c;并且这些修改会反映到调用函数的地方。但它们之间确实存在一些关键区别和使用场景…

20、Kubernetes核心技术 - 基于Prometheus和Grafana搭建集群监控平台

目录 一、概述 二、监控平台架构图​编辑 三、部署 Prometheus 3.1、Prometheus简介 3.2、部署守护进程node-exporter 3.3、部署rbac 3.4、ConfigMap 3.5、Deployment 3.6、Service 3.7、验证Prometheus 四、部署Grafana 4.1、Deployment 4.2、Service 4.3、Ing…

Nginx实战 | 高性能HTTP和反向代理神器Nginx前世今生,以及它的“繁花之境”

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…

尺寸公差分析 -DTAS手机装配公差案例-国产-智能

小细节 大麻烦&#xff0c;公差仿真大改造 DTAS尺寸公差分析软件-国产-智能https://www.dtas-china.com/product.html 仿真要求说明&#xff1a;计算长边装配间隙G1-G6 步骤一&#xff1a;首先双面胶②放在一个工装中&#xff0c;外形定位&#xff0c;然后将后盖①放入到工…

第三代量子计算机交付,中国芯片开辟新道路,光刻机难挡中国芯

日前安徽本源量子宣布第三代超导量子计算系统正式上线&#xff0c;这是中国最先进的量子计算机&#xff0c;计算量子比特已达到72个&#xff0c;在全球已居于较为领先的水平&#xff0c;这对于中国芯片在原来的硅基芯片受到光刻机阻碍无疑是巨大的鼓舞。 据悉本源量子的第一代、…

数 据 分 析 1

1.使用Wireshark查看并分析靶机桌面下的capture.pcapng数据包文件&#xff0c;找到黑客的IP地址&#xff0c;并将黑客的IP地址作为Flag值&#xff08;如&#xff1a;172.16.1.1&#xff09;提交&#xff1b;172.16.1.41 查找&#xff1a;tcp.connection.syn 2.继续分析captu…

自定义HBase负载均衡器MyCustomBalancer实现步骤与代码解析

目录 1.HBase默认负载均衡策略 1.1 负载均衡总体流程 1.2 不能触发负载均衡的情况 1.3 负载均衡算法 2.自定义的 HBase 负载均衡器的步骤 3.MyCustomBalancer的代码细节 3.1 balanceCluster 方法的作用 3.2balanceCluster 对数据的影响 3.3监控HBase的性能指标 3.3.…

全国区县与地级市和省会的距离,2021年,shp/excel格式,附高清示意图

基本信息. 数据名称: 全国区县与地级市和省会的距离 数据格式: shpexcel 数据时间: 2021年 数据几何类型: 面 数据坐标系: WGS84 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1djs_jl与所属地级市距离&#xff08;㎞&#xff09;2…

如何实现公网访问GeoServe Web管理界面共享空间地理信息【内网穿透】

文章目录 前言1.安装GeoServer2. windows 安装 cpolar3. 创建公网访问地址4. 公网访问Geo Servcer服务5. 固定公网HTTP地址 前言 GeoServer是OGC Web服务器规范的J2EE实现&#xff0c;利用GeoServer可以方便地发布地图数据&#xff0c;允许用户对要素数据进行更新、删除、插入…

GIT - 清除历史 Commit 瘦身仓库

目录 一.引言 二.仓库清理 ◆ 创建一个船新分支 ◆ 提交最新代码 ◆ 双指针替换分支 三.总结 一.引言 由于项目运行时间较长&#xff0c;分支较多&#xff0c;且分支内包含很多不同的大文件&#xff0c;随着时间的推移&#xff0c;历史 Git 库的容量日渐增发&#xff0c…