天天看點

誰更适合物聯網(HTTP/2 & WebSocket & MQTT)?

HTTP/2 是 HTTP/1.x 的更新,主要展現在:利用 “多路複用和二進制分幀” 來解決隊首阻塞問題,降低了通信時延;利用 “頭部壓縮” 減少消息頭部,降低了傳輸開銷;實作了 伺服器推送,允許在不發起請求的情況下将資料推送到用戶端,彌補了 Http/1.x 依賴 Websockets 才能實作推送的缺陷。這些改進使得 HTTP/2 也具有适應物聯網場景的條件;

WebSockets 是在 Web 浏覽器和 Web 伺服器之間進行握手的協定,它降低了使用 Http/1.x 進行雙工通信的開銷。随着 HTTP/2 成為标準,對 websockets 的需求可能會下降;

MQTT 是基于釋出訂閱模型的協定,因其帶寬消耗小而被廣泛應用于物聯網協定。

結論:這三種協定并沒有絕對的優勝者,最好的協定取決于具體的需求和限制條件。但如果隻從帶寬、電池、功能多樣性這些基本條件看,MQTT 在其中是更占優的選擇。例如,我司的 IM 産品在 App 端是采用 MQTT 協定的實作,而在 Web 端因為有良好的 WebSocket 能力基礎,是以采用的是 WebSocket 傳輸 MQTT 格式消息。

繼續閱讀