MQTT-SN協議閱讀之MQTT-SN vs MQTT
第三章 MQTT-SN vs MQTT
MQTT-SN設計得儘可能靠近MQTT,但設計得更適應無線通訊環境,例如低頻寬高連線失敗,訊息長度短等情形,也適應於低成本,電池驅動儲存資源有限的裝置。
相比MQTT,MQTT-SN有如下顯著特徵:
1. CONNECT message被分為3小messages,後面2個message被用來傳遞到server的Will topic和Will message。
2. 因為無線通訊的低頻寬,所以用兩個位元組的topic id替換PUBLISH中的topic
name,客戶端向server/gateway註冊topic name並獲得對應的topic ids
3. 如果沒有註冊過程,則也可以使用pre-defined方法定義topic ids,這些topic ids對映到server/gataway和client都知道的topic name。次外,可以使用兩個位元組固定長度的short
topic name,short topicname可以直接包含在PUBLISH中,同樣不需要註冊過程。
4. 利用discovery過程,client可以發現server/gateway
5. clean session被擴充套件到Will功能,不僅僅在client的訂閱中出現,在Will topic和Will message中也會出現,在一個seesion內client可以修改Will topic和Will message。
6. 定義了離線下的keep-alive以支援休眠的client,電池驅動的client在休眠過程中,server/gataway暫存發往該client的包,等待其甦醒後再將包發出。