MQTT系列 | MQTT 5.0协议新特性

MQTT 5.0协议引入了多项新特性,如用户属性允许携带自定义数据,共享订阅实现订阅者负载均衡,消息过期功能避免旧消息处理,重复主题降低发布开销,Broker能力查询帮助客户端了解Broker功能,以及双向DISCONNECT提供断开原因。这些特性解决了3.1.1版本中的一些问题,提升了MQTT协议的效率和灵活性。
摘要由CSDN通过智能技术生成

目前支持和使用最广泛的版本是MQTT 3.1.1版本。2017 年 8 月,OASIS MQTT Technical Committee 正式发布了用于 Public Review 的 MQTT 5.0 的草案。2018 年,MQTT 5.0 已正式发布,但是目前支持 MQTT 5.0 的 Broker 和 Client 库还比较有限。

作为 MQTT 3.1.1 的后续版本,为什么版本号直接变成了 5.0?因为 3.1.1 在 CONNECT 的时候指定的 Protocol Version 为 4,所以后续版本只有使用 5 了。

MQTT 5.0 在 MQTT 3.1.1 的基础上做了很多改变,并不是向下兼容的。在协议上,就增加了Property字段,也正是因为这个字段,使得MQTT 5.0可以支持众多的新特性。下面将从以下几个新特性进行介绍,这些新特性能够解决在3.1.1版本中较难处理的问题。

1. 用户属性(User Properties)

5.0 中可以在 PUBLISH、CONNECT 和带有 Return Code的数据包中夹带一个和多个用户属性数据:

  • 在 PUBLISH 包中携带的用户属性由发送方的应用定义,随消息被 Broker 转发到消息的订阅方;
  • CONNECT 和 ACKs 消息里面也可以带发送者自定义的用户属性数据。

在实际的项目中,除了关心收到的消息内容,往往也想知道这个消息来自于谁。例如:ClientA 收到 ClientB 发布的消息后,ClientA 想给 ClientB 发送一个回复,这时 ClientA 必须知道 ClientB 订阅的主题才能将消息传递

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值