MQTT Qos类型解释
MQTT Qos類型解釋
原文連接:
https://blog.csdn.net/yangguosb/article/details/78653228
內(nèi)容:
Qos0
發(fā)送者只發(fā)送一次消息,不進(jìn)行重試,Broker不會(huì)返回確認(rèn)消息。在Qos0情況下,Broker可能沒(méi)有接受到消息,流程如下圖所示:
Qos1
發(fā)送者最少發(fā)送一次消息,確保消息到達(dá)Broker,Broker需要返回確認(rèn)消息PUBACK。在Qos1情況下,Broker可能接受到重復(fù)消息,流程如下圖所示:
Qos2
Qos2使用兩階段確認(rèn)來(lái)保證消息的不丟失和不重復(fù)。在Qos2情況下,Broker肯定會(huì)收到消息,且只收到一次,流程如下圖所示:
Qos1 VS Qos2
與Qos1相比,Qos2的開銷會(huì)很大,因?yàn)锽roker有額外的兩個(gè)動(dòng)作:
去重。為了保證消息不重復(fù),Broker必須進(jìn)行去重處理;
確保響應(yīng)消息PUBREC到達(dá)客戶端。Broker必須等待客戶端對(duì)PUBREC消息的響應(yīng)PUBREL,只有收到客戶端的確認(rèn)消息后,Broker才能對(duì)訂閱者投遞消息。
原文連接:
https://www.jianshu.com/p/ebe4b2c0461d
內(nèi)容:
發(fā)布publish和訂閱subscribe都可以指定qos等級(jí)。
pub時(shí)指定的qos是跟服務(wù)器有關(guān)系的,比如qos2時(shí),是保證服務(wù)器只收到一次,而不是最終的訂閱者。
訂閱者在sub時(shí)雖然指定了qos,但是收到的消息不一定就是指定qos等級(jí)的消息,而可能是降級(jí)的了。
為響應(yīng)訂閱而發(fā)出的消息的有效載荷的QoS必須是原始發(fā)布消息的QoS和服務(wù)端授予的QoS兩者中的最小值。
比如sub qos2,pub qos0,此時(shí)服務(wù)器轉(zhuǎn)發(fā)的消息是qos0級(jí)別也就是sub可能收到一次消息也可能收不到。
再如sub qos0, pub qos2,此時(shí)服務(wù)器轉(zhuǎn)發(fā)的消息也是qos0級(jí)別,sub也是可能只收到一次消息或者收不到。
也就是服務(wù)器只會(huì)按pub和sub兩者qos等級(jí)最小的那個(gè)qos規(guī)則來(lái)發(fā)送消息。
pub時(shí)指定的qos是服務(wù)器肯定按此規(guī)則接收,但是最終訂閱者不一定。
sub時(shí)指定的qos表示訂閱者可以接收的最高消息等級(jí),也就是可能收到更低等級(jí)的消息。
總結(jié)
以上是生活随笔為你收集整理的MQTT Qos类型解释的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 天涯树洞,想问问碰到这样的老公怎么办,婚
- 下一篇: 设置commit 提交模板