MQTT 5.0 协议对部分 QoS 报文,以及报文处理的流程做了一些升级,本文对此这部分升级的内容做简单的介绍。
在南沙等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都做网站、外贸营销网站建设 网站设计制作按需求定制网站,公司网站建设,企业网站建设,高端网站设计,全网营销推广,成都外贸网站制作,南沙网站建设费用合理。在 MQTT 协议中,消息分为 3 个等级,分别用 QoS0, QoS1, QoS2, 这三个不同的 QoS 值所代表的是不同的服务质量等级。以下是每一个服务质量级别的具体描述:
0 : 最多一次发送(若消息等级为 QoS 0,发布者在发布消息时只会发送一次,不管消息是否送达);
1 : 至少一次消息发送(若消息等级为 QoS 1,发布者在发布消息时会重复发送以确保消息发送成功);
2 : 消息只发送一次,并保证送达。(若消息等级为 QoS 2, 发布者在发布消息时确保接收者只接收到一个消息并且消息不会重复)。
在三种 QoS 消息等级中,QoS 0 是最节省计算资源的, 而 QoS 1 在发布完消息后还需要去接收到一个发布确认报文来停止重复的报文发送, QoS 2 消息的传输则需要更多的步骤,它需要 4 次报文发送来确保消息是单次送达的,是所有消息类型中最费计算资源和带宽的。
以下是 3 种不同 QoS 值的处理流程图:
在 MQTT 3.0 中,QoS 0 的消息发布流程是这样
若接收者没有接收到 QoS1 消息或者接收到的 QoS 1 消息有问题,是不会去发送 PUBACK 确认报文的,因此发送者不会丢弃 QoS1 消息,它还会再发送
这个消息,所以 QoS1 消息是有可能被重复发布的。
为了保证消息单次发送且能送达。首先它要发布一个 PUBLISH 报文,然后接收者在接收完成时并不会返回确认报文,它会存储接收到的消息,然后返回 PUBREC 报文给发送者,发送者在接收到 PUBREC 报文后, 将存储的 PUBLISH 报文替换成收到的 PUBREC 报文,然后发送 PUBREL 报文给接收者。 接收者收到 PUBREL 消息后丢弃之前存储的状态,此时消息已经到达接收者,并且能够确保只到达了一次。
MQTT 协议面对的是计算能力低下的嵌入式设备,虽然 MQTT 5.0 协议中对 QoS2 消息的处理流程做了一些轻微的优化,然而使用用 QoS2 消息通信仍然是非常耗资源的操作,所以通常情况下,如果对于消息传输的优先级要示不是特别高的话,请尽量不要传送 QoS 2 消息。
MQTT 5.0 在 QoS 上的升级主要体现在 QoS2 的接收者在处理报文的时候一点变化,
EMQ X 发布的最新版本 3.0 已经包含了对 MQTT 5.0 协议的支持,欢迎读者试用。
分享文章:MQTT5.0消息发布流程-创新互联
文章链接:https://www.cdcxhl.com/article24/dhojce.html
成都网站建设公司_创新互联,为您提供动态网站、App开发、外贸建站、标签优化、面包屑导航、网站设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联