MQTT系列 | MQTT 5.0协议新特性

目前支持和使用最广泛的版本是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 订阅的主题才能将消息传递

你可能感兴趣的:(网络协议,MQTT,MQTT,网络协议)