MQTT與HTTP誰最適合物聯網?
HTTP是最流行和最廣泛使用的協議。但在過去幾年中,MQTT迅速獲得了牽引力。當我們談論物聯網開發時,開發人員必須在它們之間做出選擇。那麽,MQTT與HTTP誰最適合物聯網呢?
计讯从以下几个方面分析了物联网更适合哪个协议。
1、設計和消息傳遞
MQTT以数据为中心,而HTTP是以文档为中心的。HTTP是用于客户端 – 服务器计算的请求 – 响应协议,并不总是针对移动设备进行优化。MQTT在这些术语中的主要优点是轻量级(MQTT将数据作为字节数组传输)和发布/订阅模型,这使其非常适合资源受限的设备并有助于节省电池。
此外,發布/訂閱模型爲客戶提供了彼此獨立的存在,增強了整個系統的可靠性。當一個客戶端出現故障時,整個系統可以繼續正常工作。
2、速度和交付
根據3G網絡的測量結果,MQTT的吞吐量比HTTP快93倍。
此外,與HTTP相比,MQTT協議確保了高傳輸保證。有3個級別的服務質量:
– 最多一次:保证尽力交付。
– 至少一次:保证消息至少传送一次。但是消息也可以不止一次传递。
– 恰好一次:保证每个消息只被对方接收一次
MQTT还为用户提供Last will&Testament和Retained消息的选项。第一个意味着在客户端意外断开连接的情况下,所有订阅的客户端都将从代理获得消息。保留消息意味着新订阅的客户端将立即获得状态更新。
HTTP協議沒有這些功能。
3、複雜性和消息大小
MQTT具有相當短的規範。只有CONNECT,PUBLISH,SUBSCRIBE,UNSUBSCRIBE和DISCONNECT類型對開發人員很重要。而HTTP規範要長得多。
MQTT具有非常短的消息頭,並且最小的包消息大小爲2個字節。通過HTTP協議使用文本消息格式允許它組成冗長的標題和消息。它有助于消除麻煩,因爲它可以被人類閱讀,但同時它對于資源受限的設備是不必要的。
總結
MQTT協議易于使用。對于未來的解決方案,響應時間,吞吐量,更低的電池和帶寬使用率是第一位的,這一點至關重要。在間歇性連接的情況下,它也是完美的。
HTTP是值得和可擴展的。但是當它被稱爲IoT開發時,MQTT更適合。