qmqtt-client

MQTT第5版更新,以及如何应用到Qt MQTT模块中

南笙酒味 提交于 2020-04-29 15:15:48
原文 作者: Maurice Kalinowski 校审:Richard Lin 之前 我曾写过在MQTT消息中的topic可能会对发布的数据量产生较大影响。从那之后,MQTT已经发布了第5版标准并且诞生了第一个实现。当然,Qt MQTT也随之跟进,这篇文章将介绍 Qt for Automation 模块是如何应用新标准的。 在这篇文章中,我们不会详细介绍新标准,而是展示最新版本的一些亮点特性和好处。 Topic别名 请注意消息的topic始终作为字节流的一部分并且以明文形式未加任何压缩地发送。例如,报告温度值的传感器网络可以采用如下层次结构的topic sensors/Europe/2af89b42-d2a6-11e8-a8d5-f2801f1b9fd1/Temperature 因此,消息的字节布局如下所示: 每个消息总共最多71个字节,其中4个字节包含了请求信息。 在之前的文章中,我们谈到了如下的方法 减少topic长度 组合多个传感器的值以优化额外开销的比值。 MQTT5引入了topic别名,允许为某个topic分配ID。 在连接握手期间,客户端和服务器就topic别名是否可用以及topic别名的最大数量达成一致。当ID可分配时可以将它们分配给各个topic。此分配过程是在消息发布期间完成的。新的发布消息同时设置topic别名的字节布局如下所示: 对于第一条消息