用户属性 - MQTT 5.0 新特性

MQTTv5引入了用户属性,允许添加自定义元数据,增强消息的扩展性。这一特性类似于HTTP的Header,使得在连接、发布消息时能够传递额外信息,如文件传输的元数据、资源解析的指示符和消息路由的标识。用户属性可用于文件传输、资源解析和消息路由等场景,提升系统效率和消息的可追溯性。通过在连接和发布时配置用户属性,可以在不同客户端和服务器间传递定制信息。

MQTT v5 带来了很多新的特性,我们会尽量以通俗易懂的方式展示这些特性,并探讨这些特性对开发者的影响。到目前为止,我们已经探讨过这些 MQTT v5 新特性,今天我们将继续讨论: 用户属性

什么是用户属性

用户属性(User Properties)其实是一种自定义属性,允许用户向 MQTT 消息添加自己的元数据,传输额外的自定义信息以扩充更多应用场景。

它由一个用户自定义的 UTF-8 的键/值对数组组成,并在消息属性字段中配置,只要不超过最大的消息大小,可以使用无限数量的用户属性来向 MQTT 消息添加元数据,并在发布者、MQTT 服务器和订阅者之间传递信息。

如果你熟悉 HTTP 协议的话,该功能与 HTTP 的 Header 的概念非常类似。用户属性有效地允许用户扩展 MQTT 协议,并且可以出现在所有消息和响应中。因为用户属性是由用户定义的,它们只对该用户的实现有意义。

为什么需要使用用户属性

MQTT 3 的协议扩展性能力较差,用户属性其实就是为了解决这个问题,它支持在消息中传递任何信息,确保了用户可扩展标准协议的功能。

对于选择和配置不同的消息类型,用户属性可以在客户端与 MQTT 服务器之间,或者客户端和客户端之间发送。在连接客户端中配置用户属性时,只能在 MQTT 服务器上接收,无法在客户端中接收。如果在发送消息的时候配置用户属性,则可以在其它客户端中接收。常用的有以下两种用户属性配置。

连接客户端的用户属性

当客户端与 MQTT 服务器发起连接时,服务器可以预先定义好一些需要并且可以使用到的元数据信息,即用户属性,当连接成功后,MQTT 服务可以拿到连接发送过来的相关信息进行使用,因此连接客户端的用户属性依赖于 MQTT 服务器。

消息发布的用户属性

消息发布时的用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值