MQTT--取消訂閱報(bào)文和斷開連接報(bào)文
取消訂閱報(bào)文
固定報(bào)頭的結(jié)構(gòu)筆者不都說了。主要記得固定報(bào)頭的QOS為1就行了。筆者把官方的列表貼過來了。如下
我們知道固定報(bào)頭分三部分,一個(gè)是報(bào)文類型,一個(gè)是報(bào)文標(biāo)示。一個(gè)是剩余長(zhǎng)度。取消訂閱報(bào)文類型的值為10。然后我們看QOS 為1。對(duì)應(yīng)的二進(jìn)制為10100010。Remaining Length為剩余長(zhǎng)度,同樣子二進(jìn)制為八位。所以固定報(bào)頭的二進(jìn)制一定是10100010? xxxxxxxx。
xxxxxxxx表示剩余長(zhǎng)度的二進(jìn)制。后面筆者還會(huì)抓包來看。
可變報(bào)頭里面就一個(gè)消息ID的項(xiàng)。沒有其他的。
有效載何里面存放的是主題列表。就是用于取消訂閱的主題列表。如下
筆者不知道到現(xiàn)還有沒有人看不懂這種列表的。Topic Filter為主題過濾,即是主題名。而byte 1類似這種表示每一元素。比如上面舉列中的Topic Filter是有五元素組成的。后面是每一個(gè)元素的二進(jìn)制。
mqtt 文檔里面對(duì)取消訂閱報(bào)文并沒有特別的要求。也只是刪除的動(dòng)作做了一些要求。刪除這個(gè)訂閱的時(shí)候,就必須停止發(fā)送任何信息了。同時(shí)如果有正在分送中的QOS 1 QOS2的信息就必須要完成才行。當(dāng)然也可以分送準(zhǔn)備的緩存信息。
上面我們看到了取消訂閱報(bào)文的QOS為1。所以會(huì)有一個(gè)回應(yīng)。即是取消訂閱確定報(bào)文(UNSUBACK)。取消訂閱確定報(bào)文(UNSUBACK)只有固定報(bào)頭和可變報(bào)頭,可變報(bào)頭里面只有一個(gè)消息ID的項(xiàng)。沒有什么可說的。
相關(guān)的包
取消訂閱報(bào)文
取消訂閱確定報(bào)文
我們可以看到取消訂閱報(bào)文有多么的簡(jiǎn)單,但是還是不如斷開連接報(bào)文來的簡(jiǎn)單。因?yàn)閿嚅_連接報(bào)文沒有可變報(bào)頭,沒有有效載荷。就一個(gè)固定報(bào)頭。沒有錯(cuò)就是一個(gè)固定報(bào)頭。不多說,筆者把固定報(bào)頭的列表貼出來。如下
上面的列表就是斷開連接報(bào)文的全部。
斷開連接報(bào)的結(jié)構(gòu)是最簡(jiǎn)單的。但是文檔中還是指出了幾點(diǎn)要注意的。
1)判斷固定報(bào)頭中的標(biāo)示部分必須是0000,如果不是0就斷開連接。
2)客戶端不能在通過該連接發(fā)送任何信息了。
3)服報(bào)端要?jiǎng)h除與當(dāng)前連接關(guān)聯(lián)的未發(fā)布的遺囑消息。同時(shí)如果客戶端沒有斷開的話,服務(wù)端必須斷開。
斷開連接報(bào)文
轉(zhuǎn)載于http://www.360doc.com/content/18/0320/21/16915_738834856.shtml
IoT MQTT
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。