MQTT代表消息队列遥测传输,是一种轻量级消息传递协议,专为受限设备和低带宽、高延迟网络而设计。它对于需要较小代码占用空间或网络带宽有限的远程连接特别有用。
MQTT 5 是该协议的最新版本,比其前身提供了许多改进。新功能包括原因代码、会话到期间隔、主题别名、用户属性、订阅选项、请求/响应功能和共享订阅。
我们将探索这些新功能,解释流行的代理和客户端 SDK 如何支持 MQTT 5,以及从 MQTT 3.1.1 迁移到 MQTT 5 时的一些关键注意事项。
MQTT 5 的简史和演变
MQTT 最初由 IBM 的 Andy Stanley-Clark 博士和 Arcom(现为 Eurotech)的 Arlen Nipper 于 1990 世纪 3.1 年代末开发,用于通过卫星网络监控石油管道。初始版本 MQTT vXNUMX 被设计为轻量级且易于实现,使其适用于许多物联网设备。
OASIS 标准 MQTT 3.1.1 于 2014 年发布,其中包括对协议的细微更改,以提高其清晰度和互操作性。它在资源有限的情况下通过网络传递消息的简单性和效率使其在物联网应用中得到广泛采用。
然而,随着物联网行业的发展,其应用的需求也在不断变化。这导致了 MQTT 5 的开发,并于 2019 年发布,它引入了新功能来满足这些不断变化的需求。凭借其增强的功能,MQTT 5 能够更好地处理现代物联网应用的复杂要求。
MQTT v7 的 5 个新功能
原因代码:了解断开连接或故障
与其前身不同,MQTT 5 可以提供 原因码 对于每个确认包,让我们更好地理解为什么会发生断开或故障。此改进有助于故障排除并允许更精确的错误处理。
例如,如果客户端无法连接到服务器,服务器将返回一个原因代码,解释连接失败的原因。这可能是由于一系列问题造成的,从不正确的登录凭据到服务器不可用。
会话到期间隔:管理会话生命周期
此功能允许客户指定如何 服务器应该保持其会话很长时间 客户端断开连接后。在以前的 MQTT 版本中,会话要么在断开连接时立即结束,要么无限期地继续。
使用 MQTT 5,您可以定义断开连接后会话应保持活动状态的特定时间段。这为管理会话生命周期提供了更大的灵活性,并节省了服务器上的资源。
MQTT 5 介绍 主题别名 以减少消息头的开销。在以前的版本中,每条消息中都需要包含主题名称,从而导致数据包尺寸较大。
使用主题别名,可以为主题分配一个简短的数字别名。此别名可用于代替后续消息中的完整主题名称,从而显着减小 MQTT 标头的大小并节省网络带宽。
此功能允许用户在 MQTT 数据包的标头中包含自定义元数据。这对于需要通过 MQTT 消息发送附加信息(例如消息的时间戳、设备位置或其他特定于应用程序的数据)的应用程序特别有用。用户属性提供了对 MQTT 消息传递的更大灵活性和控制。
订阅选项:精细订阅控制
MQTT 5 允许客户端指定 他们希望如何接收每个订阅主题的消息。例如,客户端现在可以指定是否要接收特定订阅的保留消息,或者是否要接收消息,即使它们具有与订阅相同的 QoS(服务质量)级别。
请求/响应:允许客户端回复指定主题
请求/响应功能 允许客户端指定服务器可用于发送直接回复的主题。
在 MQTT 的早期版本中,如果客户端想要发送对消息的响应,它必须将响应发布到主题,并且原始发送者必须订阅该主题才能接收响应。借助 MQTT 5 的请求/响应功能,客户端和服务器之间的通信变得更加高效和直接。
共享订阅:订阅者的负载平衡功能
此功能允许多个客户端共享订阅。当消息发布到共享主题时,服务器会将该消息分发到共享订阅中的客户端之一,从而有效地对消息进行负载平衡。
当您运行一个服务的多个实例并且您希望在它们之间均匀分配工作负载时,此功能特别有用。
MQTT 5.0 中代理和客户端 SDK 的当前支持
MQTT 5.0协议受到物联网社区的好评,众多 MQTT 经纪人 客户端软件开发工具包 (SDK) 增加了对其的支持。主要 MQTT 经纪商已在其平台中实施 MQTT 5.0 功能,允许用户利用新协议的优势。
在客户端 SDK 方面,像 Paho 这样拥有广泛用户基础的库增加了对 MQTT 5.0 的支持。这意味着开发人员现在可以在其物联网应用程序中利用 MQTT 5.0 功能。支持 MQTT 5.0 的客户端 SDK 的其他示例包括 MQTT.js 和 MQTTnet。
从 MQTT 3.1.1 迁移到 MQTT 5 的清单
如果您当前正在使用 MQTT 3.1.1,那么可能是时候升级到 MQTT 5 了。以下是您在升级时应考虑的一些主要事项。
更新 MQTT 代理
一旦您评估了当前的基础设施并决定继续迁移,下一步就是更新您的 MQTT 代理。这涉及安装支持 MQTT 5.0 的最新版本的 MQTT 代理。
升级您的经纪商应谨慎进行,因为它会影响您的所有 MQTT 客户端。建议首先在非生产环境中测试新代理,然后再将其部署到生产环境中。此外,请确保根据需要更新代理的配置,以支持 MQTT 5.0 中引入的新功能。
更新客户端库
更新 MQTT 代理后,下一步是更新 MQTT 客户端库。就像代理更新一样,您应该首先在非生产环境中执行此更新。另外,请确保您的应用程序代码已更新以处理新的 MQTT 5.0 功能。考虑到这可能涉及一些代码重构。
地址安全
虽然 MQTT 5.0 带来了多项改进,但它也引入了新的安全考虑因素。例如,通过新的用户属性功能,客户端现在可以向经纪人发送自定义数据。
虽然这是一个强大的功能,但如果使用不当,它可能会被利用。因此,从安全角度评估所有新功能非常重要。
您可以采取的一些步骤来解决安全问题,包括使用新的增强型身份验证功能来增强安全性、限制客户端只能发送必要的用户属性,以及持续监控任何可疑活动。
迁移后监控
最后,在迁移到 MQTT 5.0 并实现其功能后,持续监控您的系统非常重要。监控不应仅局限于技术方面,例如消息传递或客户端连接。
您还应该监控应用程序中新 MQTT 5.0 功能的使用情况。这将使您深入了解这些功能如何增强您的应用程序以及可以在哪些方面进行进一步改进。
- :具有
- :是
- :不是
- :在哪里
- 1
- 2014
- 2019
- 7
- a
- 账号管理
- 活动
- 添加
- 额外
- 附加信息
- 地址
- 采用
- 明智的
- 后
- 向前
- 艾滋病
- 活着
- 所有类型
- 允许
- 允许
- 已经
- 还
- 其中
- an
- 和
- 任何
- 应用领域
- 应用领域
- 保健
- AS
- 方面
- 评估
- 分配
- 认证
- 带宽
- 基地
- BE
- 成为
- 很
- before
- 作为
- 好处
- 更好
- 之间
- 带来
- 广阔
- 经纪人
- 经纪人
- by
- CAN
- 关心
- 更改
- 改变
- 明晰
- 客户
- 客户
- 码
- 代码
- 沟通
- 社体的一部分
- 复杂
- 配置
- 分享链接
- 地都
- 连接
- 考虑
- 注意事项
- 持续
- 一直
- 控制
- 正确地
- 可以
- 资历
- 电流
- 目前
- 习俗
- data
- 决定
- 定义
- 交付
- 交货
- 设计
- 发达
- 开发
- 研发支持
- 设备
- 设备
- DID
- 直接
- 断开
- 分发
- 完成
- dr
- 两
- 每
- 此前
- 易
- 只
- 效率
- 高效
- 或
- 截至
- 增强
- 加强
- 确保
- 环境
- 配备
- 错误
- 评估
- 甚至
- 匀
- 所有的
- 进化
- 进化
- 例子
- 例子
- 到期
- 说明
- 说明
- 剥削
- 探索
- 失败
- 失败
- 专栏
- 特征
- 姓氏:
- 高度灵活
- Footprint
- 针对
- 止
- 前
- ,
- 功能
- 进一步
- 给
- 给予
- Go
- 更大的
- 民政事务总署
- 处理
- 处理
- 有
- 头
- 相关信息
- 历史
- 创新中心
- HTTPS
- IBM
- if
- 立即
- 影响
- 实施
- 实施
- 重要
- 改善
- 改进
- 改善
- in
- 包括
- 包括
- 行业中的应用:
- 信息
- 基础设施
- 初始
- 可行的洞见
- 安装
- 例
- 实例
- 互操作性
- 成
- 介绍
- 推出
- 涉及
- 涉及
- 物联网
- 物联网设备
- 问题
- IT
- 它的
- JPG
- 只是
- 不停
- 键
- 大
- 晚了
- 最新
- 领导
- 导致
- Level
- 杠杆作用
- 库
- 轻巧
- 喜欢
- 有限
- 圖書分館的位置
- 登录
- 制成
- 主要
- 保持
- 主要
- 制作
- 管理的
- 许多
- 最大宽度
- 手段
- 的话
- 条未读消息
- 消息
- 元数据
- 可能
- 迁移
- 迁移
- 移民
- 未成年人
- 现代
- 显示器
- 监控
- 更多
- 更高效
- 移动
- 许多
- 多
- 姓名
- 必要
- 需求
- 打印车票
- 需要
- 网络
- 网络
- 全新
- 新功能
- 下页
- 现在
- 绿洲
- 发生
- of
- 提供
- 油
- on
- 一
- 仅由
- 附加选项
- or
- 原版的
- 其他名称
- 输出
- 超过
- 包
- 特别
- 尤其
- 演出
- 期间
- 透视
- 地方
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 热门
- 强大
- 精确的
- 以前
- 大概
- 生产
- 财产
- 协议
- 协议
- 提供
- 提供
- 发布
- 出版
- 质量
- 范围
- 原因
- 接收
- 收到
- 减少
- 减少
- 发布
- 远程
- 一个回复
- 必须
- 岗位要求
- 资源
- 响应
- 保留
- 回报
- 卷
- 运行
- 同
- 卫星
- 情景
- SDK
- sdk
- 保安
- 提交
- 寄件人
- 服务器
- 服务器
- 服务
- 会议
- 几个
- Share
- 共用的,
- 短
- 应该
- 显著
- 简单
- 尺寸
- 尺寸
- 小
- So
- 软件
- 软件开发
- 一些
- 具体的
- 指定
- 标准
- 看台
- 步
- 步骤
- 简单的
- 强
- 订阅
- 订阅
- 随后
- 这样
- 合适的
- SUPPORT
- 支持
- 支持
- 可疑
- 系统
- 采取
- 文案
- test
- 这
- 其
- 他们
- 因此
- 博曼
- 他们
- 事
- Free Introduction
- 次
- 时间戳
- 至
- 主题
- 运输
- 理解
- 更新
- 更新
- 更新
- 升级
- 上
- us
- 用法
- 使用
- 用过的
- 用户
- 用户
- 运用
- 利用
- 版本
- 想
- 通缉
- 是
- 井
- ,尤其是
- 是否
- 这
- 为什么
- 广泛
- 将
- 您
- 您一站式解决方案
- 和风网