MQTT是一種輕量級的物聯網協議,大幅度降低了網路頻寬和裝置資源的需求,並支援可靠的資料轉送,因此MQTT已成為IoT領域最廣泛應用的協議之一。隨著IoT裝置規模和應用情境的不斷擴大,MQTT 5.0協議應運而生,以滿足更多新情境需求。本文為您介紹MQTT 5.0的新特性。
背景資訊
目前,阿里雲物聯網平台已支援MQTT 3.1、3.1.1、5.0版本協議,具體的協議請參見MQTT 5.0、MQTT 3.1.1和 MQTT 3.1。
阿里雲物聯網平台已經具備標準MQTT Broker功能,並在此基礎上增加了服務端訂閱、雲產品流轉和雲端SDK功能,以加快雲端業務應用的開發。更多資訊,請參見什麼是服務端訂閱、雲產品流轉概述和MQTT 5.0接入概述。
使用限制
裝置身份註冊成功後,針對同一裝置身份資訊,只可選擇一種通訊協定接入物聯網平台,不可多種類型通訊協定同時混用。即一個裝置選擇使用MQTT 5.0通訊協定後,不可再使用MQTT 3.1、3.1.1通訊協定。
MQTT 5.0新特性
MQTT 5.0在MQTT 3.1.1的基礎上進行功能擴充,在不增加資源消耗、不降低易用性的情況下,提高物聯網裝置的效能、擴充能力和互通性。
特性 | 說明 |
訊息頭類似於HTTP的Header,可以由使用者自訂Key-Value屬性,並且支援可擴充的訊息屬性。 | |
使用4位元組整型數替換較長的Topic字串,降低資源消耗。 | |
支援在裝置離線時,設定保留裝置端與服務端之間會話資訊的時間。 | |
發布訊息時支援設定訊息到期時間,避免訂閱端收到到期訊息。 | |
裝置異常中斷連線時,訂閱者仍能接收到裝置之前發布的訊息。 | |
裝置發布的訊息可以設定為保留,這樣新的訂閱者在訂閱時就能接收到之前保留的訊息。 | |
多個訂閱者可消費同一個topic訊息,協助使用者搭建負載平衡系統。 | |
訂閱增加選項設定,可以剔除不需要的訊息,提高傳輸效率。 | |
擴充請求/響應模式,類似於HTTP協議的RPC調用。 | |
訊息增加Payload格式說明,協助使用者實現訊息的透明流轉,支援可變的訊息負載。 | |
支援功能參數協商、增強錯誤碼、服務端主動斷開等特性,提高問題排查效率。 |