MQTT v5 带来了很多新的特性,我们会尽量以通俗易懂的方式展示这些特性,并探讨这些特性对开发者的影响。到目前为止,我们已经探讨过这些 MQTT v5 新特性,今天我们将继续讨论:订阅标识符 和 订阅选项。
订阅标识符
客户端可以在订阅时指定一个订阅标识符,服务端将在订阅成功创建或修改时建立并存储该订阅与订阅标识符的映射关系。当有匹配该订阅的 PUBLISH 报文要转发给此客户端时,服务端会将与该订阅关联的订阅标识符随 PUBLISH 报文一并返回给客户端。
因此,客户端可以建立订阅标识符与消息处理程序的映射,以在收到 PUBLISH 报文时直接通过订阅标识符将消息定向至对应的消息处理程序,这会远远快于通过主题匹配来查找消息处理程序的速度。

由于 SUBSCRIBE 报文支持包含多个订阅,因此可能出现多个订阅关联到同一个订阅标识符的情况。即便是分开订阅,也可能出现这种情况,但这是被允许的,只是用户应当意识到这样使用可能引起的后果。根据客户端的实际订阅情况,最终客户端收到的 PUBLISH 报文中可能包含多个订阅标识符,这些标识符可能完全不同,也可能有些是相同的,以下是几种常见的情况:
- 客户端订阅主题
a并指定订阅标识符为 1,订阅主题b并指定订阅标识符为 2。由于使用了不同的订阅标识符,主题为a和b的消息能够被定向至不同的消息处理程序。 - 客户端订阅主题
a并指定订阅标识符为 1,订阅主题b并指定订阅标识符为 1。由于使用了相同的订
MQTTv5订阅特性详解

MQTTv5引入订阅标识符与订阅选项等新特性,提升消息处理效率。订阅标识符可加速消息定向,订阅选项如NoLocal、RetainHandling增加消息控制灵活性。
最低0.47元/天 解锁文章
272

被折叠的 条评论
为什么被折叠?



