對MQTT和CoAP的一些個人見解

半鬥米發表於2018-01-18

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)

相關文章