時(shí)間:2020-12-21 作者:眾山科技
HTTP是應用最為廣泛和流行的協(xié)議。但是MQTT在過(guò)去的幾年里迅速取得了進(jìn)展。在討論物聯(lián)網(wǎng)開(kāi)發(fā)的時(shí)候,開(kāi)發(fā)者必須在這兩者之間作出選擇。所以,誰(shuí)最適合使用HTTP和MQTT呢?
MQTT集中于數據,而HTTP集中于文檔。HTTP是一個(gè)用于客戶(hù)端-服務(wù)器計算的請求-響應協(xié)議,它并非總是為移動(dòng)設備而優(yōu)化。在這些術(shù)語(yǔ)中,MQTT的主要優(yōu)勢是:輕量級(MQTT以字節數組的形式傳輸數據)和發(fā)布/訂閱模型,這使得MQTT非常適合資源有限的設備,并且有助于節約電池。
另外,發(fā)布/訂閱模型使客戶(hù)能夠相互獨立,從而提高整個(gè)系統的可靠性。在一個(gè)客戶(hù)機失敗的情況下,整個(gè)系統可以繼續正常工作。
速度與交貨時(shí)間。
通過(guò)3G網(wǎng)絡(luò )測試,MQTT比HTTP的吞吐量快93倍。
與HTTP相比,MQTT協(xié)議保證了高傳輸速率。服務(wù)質(zhì)量分三個(gè)層次:
-至多一次:盡力保證交貨。
-至少一次:確保郵件至少被發(fā)送一次。但信息也可以不止一次的傳遞。
-碰巧一次:保證每條信息只被另一方接收一次。
對于Lastwill&Testament和Retained消息,MQTT也向用戶(hù)提供選項。首先,如果客戶(hù)機意外斷開(kāi)連接,則所有訂閱客戶(hù)機都將從代理獲取消息。保持郵件意味著(zhù)新訂閱的客戶(hù)端會(huì )立即得到狀態(tài)更新。
這些功能不是HTTP協(xié)議。
復雜度和消息大小。
MQTT的規格非常短。對于開(kāi)發(fā)者來(lái)說(shuō),只有CONNECT,PUBLISH,SUBSCRIBE,UNSUBSCRIBE和DISCONNECT類(lèi)型是重要的。而且HTTP規范更長(cháng)一些。
MQTT有非常短的消息頭,最小的包消息大小是2字節。使用文本消息格式的HTTP協(xié)議允許它組成冗長(cháng)的標題和消息。這能幫助你解決問(wèn)題,因為它可以被人讀到,但同時(shí),它也不適合資源有限的設備。
概述。
MQTT協(xié)議使用簡(jiǎn)單。對將來(lái)的解決方案來(lái)說(shuō),響應時(shí)間、吞吐量、較低的電池和帶寬的使用是最重要的。對于斷斷續續的連接,它也很完美。
HTTP是有價(jià)值和可擴展的。但MQTT更適合于被稱(chēng)為物聯(lián)網(wǎng)開(kāi)發(fā)的情況。