1. 程式人生 > >MQTT-SN協議閱讀之MQTT-SN vs MQTT

MQTT-SN協議閱讀之MQTT-SN vs MQTT

第三章     MQTT-SN vs MQTT

MQTT-SN設計得儘可能靠近MQTT,但設計得更適應無線通訊環境,例如低頻寬高連線失敗,訊息長度短等情形,也適應於低成本,電池驅動儲存資源有限的裝置。

相比MQTTMQTT-SN有如下顯著特徵:

1.      CONNECT message被分為3messages,後面2message被用來傳遞到serverWill topicWill message

2.      因為無線通訊的低頻寬,所以用兩個位元組的topic id替換PUBLISH中的topic name,客戶端向server/gateway註冊topic name並獲得對應的topic ids

;註冊也可以是反方向的,即server/gateway通過註冊過程告知client相關topic nametopic id,以在後續的PUBLISH包含正確的topic id

3.      如果沒有註冊過程,則也可以使用pre-defined方法定義topic ids,這些topic ids對映到server/gatawayclient都知道的topic name。次外,可以使用兩個位元組固定長度的short

topic nameshort topicname可以直接包含在PUBLISH中,同樣不需要註冊過程。

4.      利用discovery過程,client可以發現server/gateway

的網路地址,而不用提前配置server/gateway的網路地址,這樣可以靈活使用多個不同的gataway

5.      clean session被擴充套件到Will功能,不僅僅在client的訂閱中出現,在Will topicWill message中也會出現,在一個seesionclient可以修改Will topicWill message

6.      定義了離線下的keep-alive以支援休眠的client,電池驅動的client在休眠過程中,server/gataway暫存發往該client的包,等待其甦醒後再將包發出。