在使用雲Message QueueTT 版前,需理解該產品和MQTT協議所涉及的基本概念和術語。
基本概念
執行個體(Instance)
建立購買雲Message QueueTT 版服務的實體單元,每個雲Message QueueTT 版執行個體都對應一個全域唯一的服務存取點URL。使用雲Message QueueTT 版前都需要在對應的地區( Region)建立一個執行個體,並使用對應的存取點來訪問服務。建立雲Message QueueTT 版執行個體的步驟,請參見MQTT快速入門。
MQTT伺服器
- 雲Message QueueTT 版提供的MQTT協議互動的服務端節點,用於完成與MQTT用戶端和雲訊息佇列 RocketMQ 版各自的訊息收發。
MQTT用戶端
- 用於和MQTT伺服器互動的移動端節點,全稱為雲Message QueueTT 版用戶端。
P2P訊息
- 雲Message QueueTT 版在標準的MQTT協議基礎上提供的一種特殊訊息,該類型訊息無需普通的訂閱關係匹配,便可直接發送給指定的單個目標MQTT用戶端。更多資訊,請參見P2P訊息收發模式(MQTT)。
父級Topic(Parent Topic)
- MQTT協議基於Pub/Sub模型,因此任何訊息都屬於一個Topic。根據MQTT協議,Topic存在多級,定義第一級Topic為父級Topic,使用雲Message QueueTT 版前,需先在控制台建立該父級Topic,可以在雲Message QueueTT 版控制台建立,或者直接在雲訊息佇列 RocketMQ 版的控制台建立。
子級Topic(Subtopic)
- MQTT的二級Topic,甚至三級Topic都是父級Topic下的子類。使用時,直接在代碼裡設定,無需建立。需要注意的是雲Message QueueTT 版限制父級Topic和子級Topic的總長度為64個字元,如果超出長度限制將會導致用戶端異常。
Client ID
雲Message QueueTT 版的Client ID是每個用戶端的唯一標識,要求全域唯一,使用相同的Client ID串連雲Message QueueTT 版服務會被拒絕。
Client ID由兩部分組成,組織形式為<GroupID>@@@<DeviceID>。Client ID的長度限制為64個字元,不允許使用不可見字元,更多限制資訊,請參見使用限制。
Group ID
- 用於指定一組邏輯功能完全一致的節點共用的組名,代表一類相同功能的裝置。Group ID需要在雲Message QueueTT 版的控制台建立,建立後方可使用。如何建立Group ID的具體步驟請參見MQTT快速入門。
Device ID
- 每個裝置獨一無二的標識,由業務方自己指定。需要保證全域唯一,例如每個感應器裝置的序號。
網路類
ServerUrl
雲Message QueueTT 版推薦移動終端使用公網存取點,也支援內網存取點。目前雲Message QueueTT 版的接入除了支援標準協議的1883連接埠,同時還支援加密SSL和WebSocket等方式。存取點URL是在建立執行個體之後自動分配,請妥善保管。如何建立執行個體的步驟,請參見MQTT快速入門。
協議相關
MQTT
- 一種物聯網和移動互連網領域的行業標準協議,適合移動終端之間的資料轉送。雲Message QueueTT 版預設支援該協議。
QoS
- QoS(Quality of Service)指代訊息傳輸的服務品質。它包括以下層級:
- QoS0代表最多分發一次
- QoS1代表至少達到一次
- QoS2代表僅分發一次
cleanSession
- cleanSession標誌是MQTT協議中對一個用戶端建立TCP串連後是否關心之前狀態的定義。具體語義如下:
- cleanSession=true:用戶端再次上線時,將不再關心之前所有的訂閱關係以及離線訊息。
- cleanSession=false:用戶端再次上線時,還需要處理之前的離線訊息,而之前的訂閱關係也會持續生效。
QoS和cleanSession搭配使用時需注意以下幾點:
- MQTT要求每個用戶端每次串連時的cleanSession標誌必須固定,不允許動態變化,否則會導致離線訊息的判斷有誤。
- MQTT目前對外QoS2訊息不支援非cleanSession,如果用戶端以QoS2方式訂閱訊息,即使設定cleanSession=false也不會生效。
- P2P訊息的cleanSession判斷以發送方用戶端的配置為準。
QoS和cleanSession的不同組合產生的結果如QoS和cleanSession的組合關係所示。
| QoS層級 | cleanSession=true | cleanSession=false |
| QoS0 | 無離線訊息,線上訊息只嘗試推一次 | 無離線訊息,線上訊息只嘗試推一次 |
| QoS1 | 無離線訊息,線上訊息保證可達 | 有離線訊息,所有訊息保證可達 |
| QoS2 | 無離線訊息,線上訊息保證只推一次 | 暫不支援 |
解決方案相關
RTC
- 即時通訊,一種主要面向語音、視頻領域的網路通訊方式。目前比較主流的應用情境是語音通話、視訊通話、視頻會議等。
RTC伺服器
- 阿里雲音視頻通訊RTC提供的音視頻相關媒體通道服務。
音視頻業務管控伺服器
- 音視頻通訊系統中的管控節點,簡稱音視頻管控服務。音視頻管控服務需要由業務方自行建設,用於控制所有音視頻通訊會話的生命週期。該管控節點一般部署在雲端,使用阿里雲的基礎產品搭建。
音視頻移動端應用
- 音視頻通訊系統中終端使用者持有的終端App,簡稱終端App。終端使用者使用該App發起或者參與音視訊通話。
智能AP
- 市面常見的智能路由器等網路裝置,支援應用編程,可以同時承擔互連網接入以及區域網路裝置控制等工作。
電子價簽
- 實際分布在商場超市等場所中的電子顯示螢幕,一般使用藍芽、ZigBee等無線感測網路通訊協定和智能AP節點群組網。
電子價簽管控服務
- 電子價簽系統中用於管理電子螢幕顯示內容的後台服務,主要承擔改價等人工操作的任務管理和查詢工作。
RDS
- 阿里雲推出的一種穩定可靠、可Auto Scaling的線上資料庫服務。在電子價簽系統中用來持久化改價等任務的狀態變更。
SLS日誌儲存
- 阿里雲推出的日誌儲存服務,在電子價簽系統中用來持久化儲存所有動作記錄,用於審計和溯源。