关于MQTT协议的说明
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
我們知道,QQ物聯(lián)網(wǎng)是基于一種發(fā)布和訂閱的一種通信協(xié)議,在我看來這或者就是MQTT協(xié)議,雖然我并沒有去了解他。 首先,發(fā)布所在的平臺一般是服務(wù)器端,而訂閱的平臺一般是設(shè)備端。他們主要是通過網(wǎng)絡(luò)而發(fā)送消息的一種通信協(xié)議。server 端和client 端建立起來的連接統(tǒng)稱會話(session),各種平臺可以通過主題(TOPIC)來建立不同的通信。這些基本的先解釋下,下面有關(guān)的術(shù)語就不再敘述。 1,數(shù)據(jù)格式 數(shù)據(jù)包的前兩個字節(jié)表示這個包的大小,后面緊接著是UTF-8編碼的內(nèi)容。 2,MQTT控制包格式 他主要分為三個部分:固定的頭部、可變的部分、以及負(fù)載。 2.1固定的頭部 他主要包括控制包的類型以及相應(yīng)的標(biāo)記,剩下的就是保留部分。這里控制包類型主要是如下圖所示: 控制包的類型只是占了一個字節(jié)的高四位,而低四位主要是標(biāo)記,這個標(biāo)記主要是為了以后擴(kuò)展用。 后面的字節(jié)就是保留字節(jié)了,主要是可變部分以及負(fù)載。 2.2可變部分 這一部分可變主要是MQTT協(xié)議對這一部分沒有也是能正常通信的。變量的內(nèi)容取決于數(shù)據(jù)包類型。可變報頭的分組標(biāo)識符字段在幾種分組類型中是常見的。他們主要是:PUBLISH (where QoS > 0), PUBACK, PUBREC, PUBREL, PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK. SUBSCRIBE,UNSUBSCRIBE和PUBLISH(在QoS> 0的情況下)控制包必須包含非零16位數(shù)據(jù)包標(biāo)識符。每當(dāng)客戶端發(fā)送這些類型之一的新數(shù)據(jù)包時,它必須為其分配一個當(dāng)前未使用的數(shù)據(jù)包標(biāo)識符。如果客戶端重新發(fā)送特定的控制分組,則它必須在該分組的后續(xù)重新發(fā)送中使用相同的分組標(biāo)識符。在客戶端處理相應(yīng)的確認(rèn)分組后,分組標(biāo)識符變得可用于重用。如下圖所示: 2.3負(fù)載部分 如下圖所示,列出了有效載荷包:
今天就先寫一部分,剩下的部分比較重要,需要再多揣摩幾次再發(fā)吧。
轉(zhuǎn)載于:https://my.oschina.net/u/2241389/blog/872116
總結(jié)
以上是生活随笔為你收集整理的关于MQTT协议的说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业云存储采用率将在2017年飙升
- 下一篇: 怎样在Android上手动备份你的短信/