關於MQTT協議的說明

咱們知道,QQ物聯網是基於一種發佈和訂閱的一種通訊協議,在我看來這或者就是MQTT協議,雖然我並無去了解他。 首先,發佈所在的平臺通常是服務器端,而訂閱的平臺通常是設備端。他們主要是經過網絡而發送消息的一種通訊協議。server 端和client 端創建起來的鏈接統稱會話(session),各類平臺能夠經過主題(TOPIC)來創建不一樣的通訊。這些基本的先解釋下,下面有關的術語就再也不敘述。 1,數據格式 數據包的前兩個字節表示這個包的大小,後面緊接着是UTF-8編碼的內容。輸入圖片說明 2,MQTT控制包格式 他主要分爲三個部分:固定的頭部、可變的部分、以及負載。 2.1固定的頭部 他主要包括控制包的類型以及相應的標記,剩下的就是保留部分。這裏控制包類型主要是以下圖所示: 輸入圖片說明 控制包的類型只是佔了一個字節的高四位,而低四位主要是標記,這個標記主要是爲了之後擴展用。 後面的字節就是保留字節了,主要是可變部分以及負載。 2.2可變部分 這一部分可變主要是MQTT協議對這一部分沒有也是能正常通訊的。變量的內容取決於數據包類型。可變報頭的分組標識符字段在幾種分組類型中是常見的。他們主要是:PUBLISH (where QoS > 0), PUBACK, PUBREC, PUBREL, PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK. SUBSCRIBE,UNSUBSCRIBE和PUBLISH(在QoS> 0的狀況下)控制包必須包含非零16位數據包標識符。每當客戶端發送這些類型之一的新數據包時,它必須爲其分配一個當前未使用的數據包標識符。若是客戶端從新發送特定的控制分組,則它必須在該分組的後續從新發送中使用相同的分組標識符。在客戶端處理相應的確認分組後,分組標識符變得可用於重用。以下圖所示:輸入圖片說明 2.3負載部分 以下圖所示,列出了有效載荷包: 輸入圖片說明服務器

今天就先寫一部分,剩下的部分比較重要,須要再多揣摩幾回再發吧。網絡

相關文章
相關標籤/搜索