01 協(xié)議的基礎(chǔ)性變化
MQTT 5是對(duì)現(xiàn)有協(xié)議規(guī)范的重大更新,新版本協(xié)議具有以下特征:輕量級(jí)、易用性、極強(qiáng)的可擴(kuò)展性、對(duì)移動(dòng)網(wǎng)絡(luò)的適用性以及通信參與者的解耦。
02 MQTT仍然是MQTT
如果您熟悉MQTT3.1.1,那么您之前知道的關(guān)于MQTT的所有原則和功能同樣適用于MQTT v5。不同的是,以往功能的部分細(xì)節(jié),如“Last Will and Testament”發(fā)生了一點(diǎn)變化,某些功能也得到擴(kuò)展。此外,由虹科HiveMQ實(shí)現(xiàn)的額外的流行功能,如“TTL”或“共享訂閱”被添加到新的規(guī)范中。
協(xié)議也稍有變化,增加了一個(gè)額外的控制包(AUTH)。
但總的來(lái)說(shuō),MQTT5仍然可以清楚地識(shí)別為MQTT。
03 MQTT 頭部屬性和原因代碼
MQTT5最靈活的新功能之一是可以在MQTT頭部中添加自定義鍵值(key-value)屬性。與HTTP等協(xié)議類(lèi)似,MQTT客戶(hù)端和代理可以添加任意數(shù)量的自定義(或預(yù)定義)頭部來(lái)攜帶元數(shù)據(jù)。這種元數(shù)據(jù)可用于應(yīng)用程序的特定數(shù)據(jù),而預(yù)先定義的頭部信息被用于實(shí)現(xiàn)大多數(shù)新的MQTT功能。
許多MQTT數(shù)據(jù)包現(xiàn)在也包括原因代碼(Reason Codes)。一個(gè)原因代碼表明發(fā)生了一個(gè)預(yù)先定義的協(xié)議錯(cuò)誤。這些原因代碼通常是在確認(rèn)數(shù)據(jù)包中進(jìn)行,允許客戶(hù)端和代理解釋錯(cuò)誤情況(并有可能解決錯(cuò)誤情況)。原因代碼有時(shí)也被稱(chēng)為否定確認(rèn)(Negative Acknowledgements)。以下MQTT數(shù)據(jù)包可以攜帶原因代碼:
CONNACK
PUBACK
PUBREC
PUBREL
PUBCOMP
SUBACK
UNSUBACK
AUTH
DISCONNECT
04 CONNACK Return Codes—指示不支持/未實(shí)現(xiàn)功能
隨著MQTT的普及,許多公司創(chuàng)建并提供了許多MQTT部署。但并非所有的這些實(shí)現(xiàn)都是完全兼容MQTT規(guī)范的,因?yàn)橛袝r(shí)候一些功能并沒(méi)有實(shí)現(xiàn),比如QoS 2、保留消息或持久會(huì)話(huà)。值得一提的是,虹科HiveMQ是完全符合MQTT規(guī)范的,并且支持所有的功能。
MQTT 5為不完整的MQTT實(shí)現(xiàn)提供了一種方法,用來(lái)表明該代理不支持特定的功能。客戶(hù)端的工作是確保不使用不支持的功能。代理的部署是在CONNACK數(shù)據(jù)包(客戶(hù)端發(fā)送CONNECT數(shù)據(jù)包后由代理發(fā)送)中使用預(yù)定義的標(biāo)頭來(lái)表明不支持特定的功能。當(dāng)然,這些標(biāo)頭也可以用來(lái)向客戶(hù)端發(fā)送通知,說(shuō)明它沒(méi)有使用特定功能的權(quán)限。
在MQTT 5中,有以下預(yù)定義的頭部用于指示未實(shí)現(xiàn)的功能(或不允許客戶(hù)端使用的功能):
這些返回代碼對(duì)于在異構(gòu)環(huán)境中溝通各個(gè)MQTT客戶(hù)端的權(quán)限具有重要作用。這個(gè)新功能的缺點(diǎn)是:MQTT客戶(hù)端需要自己實(shí)現(xiàn)對(duì)這些代碼的解釋?zhuān)⑶倚枰_保應(yīng)用程序的程序員僅使用代理支持(客戶(hù)端有權(quán)限)的功能。虹科HiveMQ 100% 支持所有 MQTT 5 功能,因此只有在涉及到部署中的權(quán)限時(shí),管理員才會(huì)使用這些自定義頭文件。
下期文章中,我們將繼續(xù)給大家介紹MQTT5協(xié)議中的基礎(chǔ)更改中其他新功能的細(xì)節(jié)描述。
05 關(guān)于虹科 HiveMQ
虹科HiveMQ 是一個(gè)基于 MQTT 數(shù)據(jù)傳輸?shù)耐ㄐ牌脚_(tái),旨在將數(shù)據(jù)快速、高效、可靠地傳遞給連接的物聯(lián)網(wǎng)設(shè)備,HiveMQ 使用 MQTT 協(xié)議在設(shè)備和企業(yè)平臺(tái)之間進(jìn)行實(shí)時(shí)、雙向的數(shù)據(jù)推送。
虹科HiveMQ 的建立是為了解決企業(yè)在構(gòu)建新的物聯(lián)網(wǎng)應(yīng)用時(shí)面臨的一些關(guān)鍵技術(shù)挑戰(zhàn),包括:
構(gòu)建可靠、可擴(kuò)展的關(guān)鍵業(yè)務(wù)物聯(lián)網(wǎng)應(yīng)用
快速的數(shù)據(jù)交付,以滿(mǎn)足終端用戶(hù)對(duì)響應(yīng)式物聯(lián)網(wǎng)產(chǎn)品的期望
通過(guò)有效利用硬件、網(wǎng)絡(luò)和云資源降低運(yùn)營(yíng)成本
將物聯(lián)網(wǎng)數(shù)據(jù)整合到現(xiàn)有的企業(yè)系統(tǒng)中
-
工業(yè)自動(dòng)化
+關(guān)注
關(guān)注
17文章
2245瀏覽量
67163 -
MQTT
+關(guān)注
關(guān)注
5文章
648瀏覽量
22393 -
MQTT協(xié)議
+關(guān)注
關(guān)注
0文章
97瀏覽量
5336
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論