1. 程式人生 > 其它 >MQTT協議:Retain (保留訊息)功能分析小結

MQTT協議:Retain (保留訊息)功能分析小結

技術標籤:MQTT

場景分析

 某個mqtt客戶端A每小時向某個特定的topic釋出一條訊息,所有訂閱這個topic
的客戶端將會收到該訊息,這是正常流程,如果客戶端A剛剛釋出訊息, 此時有一
個新的客戶端B訂閱該topic,也就是“訂閱”是在“釋出”後,這個時候客戶端B將接收
不到該訊息。
  Retain 功能就是為了解決這一問題,當客戶端A釋出小時時,將 retain
標誌置1,那麼broker就會儲存該訊息,當有新的客戶端訂閱該topic時,會立刻
將該條訊息推送給客戶端B。
    所以官方的協議中是這樣介紹該功能:“如果客戶端發給服務端的 PUBLISH 
 報文的保留(RETAIN)標誌被設定為 1,服務端 必須儲存這個應用訊息和它的
 服務質量等級(QoS),以便它可以被分發給未來的主題名匹配的訂閱者”

Retain 功能特點

1、一個topic只能有1條Retain訊息,新的Retain訊息會覆蓋舊的。
2、刪除一個Retain訊息,可以向這個topic釋出一個長度為0的
 Retain 訊息即可。