本文針對使用雲訊息佇列 RocketMQ 版SDK與雲Message QueueTT 版互動的情境,提供互動中所涉及的訊息結構和屬性欄位的映射關係,方便您更好的理解和組合使用這兩個產品。
雲Message QueueTT 版是一款面向移動端的網關產品,可通過資料互連規則實現與其他阿里雲產品,例如雲訊息佇列 RocketMQ 版的互動。規則的詳細資料,請參見規則管理。
如果單獨使用雲Message QueueTT 版,則無需關注本文提供的映射關係,一切遵循標準MQTT協議規範即可。
雲Message QueueTT 版的詳細介紹,請參見什麼是雲Message QueueTT 版和名詞解釋。
訊息結構映射
雲Message QueueTT 版和雲訊息佇列 RocketMQ 版都是基於發布/訂閱(Pub/Sub)模型的訊息系統,兩者概念上存在很多相似之處,下圖列舉了關鍵概念的區別和映射關係。

如上圖所示,在雲Message QueueTT 版中Topic是多級結構,而雲訊息佇列 RocketMQ 版的Topic僅有一級,因此,雲Message QueueTT 版中的一級Topic映射到雲訊息佇列 RocketMQ 版的Topic,而子級Topic,包括二級、三級、n級Topic則映射到雲訊息佇列 RocketMQ 版的訊息屬性(Properties)中。
雲訊息佇列 RocketMQ 版協議中的訊息(Message)可以擁有自訂屬性(Properties),而MQTT協議目前的版本不支援屬性,但為了方便溯源MQTT協議中的Header資訊和裝置資訊,雲Message QueueTT 版的部分資訊將被映射到雲訊息佇列 RocketMQ 版的訊息屬性中,方便使用雲訊息佇列 RocketMQ 版的SDK接入的使用者擷取。
在雲訊息佇列 RocketMQ 版中設定屬性欄位來映射雲Message QueueTT 版的具體步驟,請參見下文屬性欄位映射的表格。
雲訊息佇列 RocketMQ 版和雲Message QueueTT 版的訊息負載(Payload)均是您的業務訊息的資料序列化結果,雲訊息佇列 RocketMQ 版和雲Message QueueTT 版不會對業務訊息再做進一步的編解碼處理。
屬性欄位映射
目前,雲Message QueueTT 版和雲訊息佇列 RocketMQ 版支援的屬性欄位映射關係如下表所示。使用雲訊息佇列 RocketMQ 版和雲Message QueueTT 版的SDK的應用互動時,可以通過讀寫這些屬性欄位來設定或擷取資訊。
QoS、cleanSession、Topic以及Client ID的詳細解釋,請參見名詞解釋。
MQTT參數 | RocketMQ屬性Key | 屬性可選值 | 說明 |
QoS | qoslevel | 0、1、2 | 雲訊息佇列 RocketMQ 版發給雲Message QueueTT 版訊息時可以設定,如果不設定,預設為“1”; 雲Message QueueTT 版發給雲訊息佇列 RocketMQ 版的訊息可以直接讀取。 |
MQTT全量Topic | topic | 具體的全量Topic字串 | 不可設定,雲Message QueueTT 版發給雲訊息佇列 RocketMQ 版訊息時,用於追蹤該訊息的發送源的全量Topic。 |
cleanSession | cleansessionflag | true、false | 雲訊息佇列 RocketMQ 版發給雲Message QueueTT 版用戶端P2P訊息時設定,如不設定,預設為“true”; 其他訊息不可以設定,雲Message QueueTT 版發給雲訊息佇列 RocketMQ 版的訊息可以直接讀取。 |
MQTT子級Topic | mqttSecondTopic | 具體的子級Topic字串 | 雲訊息佇列 RocketMQ 版發給雲Message QueueTT 版用戶端訊息時如果需要子級Topic來做過濾,則設定,如不設定,預設為空白; 雲Message QueueTT 版發給雲訊息佇列 RocketMQ 版的訊息可以直接讀取。 |
用戶端接收訊息顯示Topic | mqttRealTopic | 業務上希望用戶端收到訊息時顯示的子級字串 | 雲訊息佇列 RocketMQ 版發給雲Message QueueTT 版用戶端訊息時如果希望用戶端收到訊息後顯示成指定的子級Topic名稱,則可以設定;一般用於P2P訊息,若不設定,P2P訊息預設使用自己固定的Topic; 雲Message QueueTT 版發給雲訊息佇列 RocketMQ 版的訊息時無該屬性。 |
clientId | clientId | 具體的Client ID字串 | 不可設定,雲Message QueueTT 版發給雲訊息佇列 RocketMQ 版訊息時,用於追蹤該訊息的發送源的Client ID。 |