什么是MQTT?
MQTT是一個“發布和訂閱”協議。用戶可以訂閱某些主題,或發布某些主題的消息。訂閱者將收到訂閱的主題消息。用戶可以通過保證交付來配置協議更可靠。
什么是CoAP?
CoAP看起來像是兼容HTTP,支持大多數互聯網。 CoAP可以利用代理服務器,並將其轉換成HTTP,或者根據環境限制直接與設計為使用CoAP的特殊服務器進行通信。
你什么時候使用它們?
由於發布/訂閱體系結構與中間商中介,MQTT是廣域網(WAN,互聯網)上的設備之間的通信的理想選擇。它在帶寬有限的情況下是最有用的,例如遠程現場站點或其他缺乏強大網絡的區域。
MQTT是Azure和Amazon服務產品的一部分,因此它具有很多已建立的架構,使其易於適應當前的開發人員。
CoAP的強項是與HTTP的兼容性。如果您有一個基於Web服務的現有系統,那么在CoAP中添加是一個很好的選擇。它建立在用戶數據報協議(UDP)上,這在一些資源有限的環境中是有用的。由於UDP允許廣播和多播,您可以使用較少的帶寬潛在地傳輸到多個主機。這使得它對於設備需要快速交流的本地網絡環境很好,這對於一些M2M設置是傳統的。
如果物聯網開發人員正在使用將利用現有Web服務器架構的設備,開發人員將使用CoAP。但是,如果開發者正在構建一個設備真正“僅報告”的東西 - 也就是說,它被丟棄在網絡上,只需要將數據報告回服務器 - CoAP將會更好。其他用途,如雲架構,可能最好用MQTT完成。
MQTT和CoAP的未來
隨着時間的推移,對於其他協議,使用或行業采用趨向於向更自由和包容的平台遷移,除非非包容性平台更好。 MQTT和CoAP都是開放標准,任何人都可以實現。 CoAP由標准機構啟動,而不是由私有公司(包括IBM)設計的MQTT。 CoAP被設計為處理資源有限的環境,可能是它成為贏家,但是目前MQTT似乎處於領先地位。 MQTT背后有顯着的動力 - 大雲玩家已經選擇了這一勢頭,或者至少選擇它。此外,許多商業用例需要MQTT(存儲和轉發,集中式主機)的功能。然而,一種可能性是,一些圍繞HTTP(例如移動應用程序開發)進行標准化的軟件開發可以開始利用CoAP來處理外圍設備,並與后端通信,以幫助減少不良連接帶寬。
最終,這些協議可以通過互聯網有效部署在不同的應用程序中。我們知道有特定的使用案例,其中每個都是最好的,但是我們也知道,物聯網和物聯網設備將會在復雜性和普及性方面繼續發展。對於開發人員來說,了解應用程序的關鍵差異不僅可以實現更好的初始部署,而且可以為今后的開發工作奠定堅實的基礎。