對MQTT和CoAP的一些個人見解
mingdu.zheng at gmail dot com
http://blog.csdn.net/zoomdy/article/details/79093176
首先,MQTT和CoAP沒有好不好的問題,只有適合什麼應用場景的問題。
MQTT
MQTT的特點是可以保持長連線,具有一定的實時性,雲端向裝置端傳送訊息,裝置端可以在最短的時間內接收到並作出響應,所以MQTT更適合需要實時控制的場合,更適合執行器。要保持長連線,那麼就要時不時地傳送心跳包,這就不會省電了。所以低功耗的場合並不適合MQTT。MQTT的長連線需要建立在TCP的基礎上,TCP協議的複雜性決定了對裝置的要求是比較高一些的,相比UDP。
CoAP
CoAP的特點是低功耗,資料發完就可以休眠了。所以CoAP更適合資料採集的場合,更適合純粹的感測器裝置,特別是電池供電的感測器裝置。基於UDP協議,對裝置的要求比較簡單。華為出的NB-IoT晶片就只支援UDP和CoAP,華為的決策告訴我們CoAP和NB-IoT是一對。
對比
協議 | 核心特點 | 下層協議 | 應用場合 | 硬體要求 |
---|---|---|---|---|
MQTT | 長連線 | TCP | 實時控制/執行器 | 較高 |
CoAP | 低功耗 | UDP | 資料採集/感測器 | 較低 |
參考
MQTT Wiki
MQTT 3.1.1 specification
CoAP Wiki
RFC7252: The Constrained Application Protocol (CoAP)
相關文章
- 關於 Laravel 的一些個人見解Laravel
- 我對英文翻譯的一些個人偏見
- 11G result cache新特性的一些發現和個人見解
- Java Enum 個人見解Java
- 主流物聯網協議選擇:MQTT、CoAP 還是 LwM2M?協議MQQT
- C++ new用法的個人見解C++
- 遞增排序個人見解排序
- ios MVC框架使用個人見解iOSMVC框架
- 對JAVA的一些個人總結——物件導向Java物件
- 對Spring的AOP體系的一些個人想法Spring
- 關於MySQL的一些小見解MySql
- iOS block的一些自我見解iOSBloC
- 對比華為的cloudIDE和coding的cloud studio及個人的一些想法CloudIDE
- 對 Android SDK 開發的一些個人心得Android
- 抓住CoAP協議的“心”協議
- 全屏HTML 5適配 個人見解HTML
- Floyd演算法之個人見解演算法
- P型別詮釋----個人見解型別
- 個人愚見:Redux 和 Mobx 區別Redux
- spring中常見的一些註解Spring
- 我對工程師轉市場的一些個人看法工程師
- 提高開放性 API 介面的資料安全性的個人一些見解,歡迎補充!API
- HTTP協議和MQTT協議對比誰更好HTTP協議MQQT
- 淺談,C語言編譯原理的個人見解C語言編譯原理
- 我對框架的一點見解框架
- 我對OOP的淺顯見解OOP
- 寫java程式碼的一些個人感受和總結Java
- 對定義過程和敏捷性的常見誤解敏捷
- 個人對持續整合的理解和實踐
- 錯誤程式碼的個人見解以及邏輯分析題
- Java記憶體問題的一些見解Java記憶體
- COAP協議 - arduino ESP32 M2M(端對端)通訊與程式碼詳解協議UI
- 對於最近的一些理解和思考
- 《原神》——開放世界二次元遊戲的一些見解和建議二次元遊戲
- Mac 下 Docker 執行較慢的原因分析及個人見解MacDocker
- 日常爬蟲工作中一些常見的和不常見的偽裝技巧爬蟲
- 【process】一些常見file和process的作用總結
- 對蘋果企業號的一些瞭解蘋果