
物聯網是對傳統互聯網的擴展和擴展。用戶終端從傳統的計算機擴展到任何設備,其中設備首先通過各種傳感器收集信息,然后通過計算設備收集信息、交換和交換網絡信息。mqtt協議之所以出現,是因為移動互聯網尚處于起步階段,無法提供可靠的網絡保障。
1、Mqtt有許多優點
1.mqtt的獨特功能是每個消息頭可以縮短為2個字節。對于HTTP,為每個新請求消息重新建立HTTP連接會產生相當大的開銷。MQ和mqtt使用的持久連接可以極大地減少這種開銷。
2.遏制不穩定網絡。Mqtt和MQ可以從諸如斷開連接之類的故障中恢復,而無需進壹步的代碼要求。但是,HTTP本身無法實現這壹目標,客戶端必須重試編碼,這將增
加身份問題。
3.低功耗mqtt設計用于低功耗。
HTTP設計中未考慮此因素,這將增加功耗。
4.當連接數百萬個客戶端時,在HTTP堆棧中維護數百萬個并發連接需要大量工作來提供支持。
盡管這種支持是可行的,但大多數商業產品都經過優化,以處理此訂單上的持久連接。IBM提供了IBMmessagesight,這是壹個經過測試的獨立安裝服務器,可以通過mqtt處理多達壹百萬個并發設備。相比之下,MQ不是為許多同時出現的客戶設計的。
5.推送通知。
您需要能夠及時向客戶發送通知。為此,應使用常規輪詢或推送方法。就電池、系統負載和帶寬而言,推送是最好的解決方案。
6.客戶端平臺之間的差異。HTTP和mqtt客戶端都在許多平臺上實現。mqtt的簡單性幫助您在其他客戶機上以最小的工作量實現mqtt。
7.防火墻容錯。某些公司防火墻將出站連接限制為某些預定義端口。這些端口通常限于HTTP(端口80)、HTTPS(端口443)等。HTTP顯然在這種情況下起作用。Mqtt封裝在WebSockets連接中,并顯示為HTTP升級請求,因此它可以在這種情況下運行。
mqtt的缺點
事實上,mqtt被廣泛使用,幾乎可以在任何大型硬件和互聯網公司中找到,如Facebook、BP、阿里巴巴和百度。
由于mqtt的技術優勢,越來越多的公司選擇mqtt作為物聯網產品通信的標準協議。因此,工程師們逐漸意識到mqtt協議的功能需要通過大規模商業化來改進。例如:
1.如果沒有完整的SDK,則需要不同異構設備的軟件SDK包與mqtt服務器(如MCU、Linux、Android、IOS、web)進行通信,實現互聯互通。
2.不支持文件和AV。在壹些應用場景中,要傳輸的信息可能不限于需要通過AV與文件通信的指令,例如語音和視頻信號。
3.不支持與第叁方HTTP集成。Mqtt協議優于傳統的HTTP協議,但基于傳統HTTP協議的Web服務器在主流市場上仍占據主導地位。這些服務器應與mqtt協議互連,以降低升級成本。
4.不支持負載分配。負載分布服務器對于高并發性和防止惡意攻擊也至關重要。
5.不支持用戶管理界面。這在用戶分析設備行為數據時尤為重要。在工業4.0和大數據時代,這是壹種必然的需求。
6.設備脫機后,不支持脫機消息來補償從mqtt服務器到設備的控制信息丟失。
7.不支持點對點通信,使用標準mqtt協議。理論上,點對點通信可以通過相互訂閱來實現,但邏輯相對復雜,涉及設備安全。當設備B和設備C相同時——在對象的情況下,設備a無法知道消息是來自設備B還是來自設備C,并且消息很可能被設備D***。
8、不支持集團溝通和集團管理,實現集團成員的管理。團隊成員可以交換消息,如果壹臺設備由多人控制或多臺設備由壹人控制,這壹點尤其有用。