本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
如果物模型功能不能滿足您的業務需求,可以使用自定義Topic實現設備上下行通信。設備自定義Topic需您在物聯網平臺從產品維度進行添加和管理,產品的自定義Topic類會自動映射為該產品下所有設備的自定義Topic。物聯網平臺對自定義Topic通信的數據格式沒有要求,需您自定義。本文介紹如何為產品自定義Topic類及自定義Topic的使用和通信說明。
背景信息
應用場景
服務端下發消息到設備端
服務端調用Pub,可向指定的自定義Topic發布消息。設備通過訂閱該Topic,接收來自服務端的消息。
設備端發送消息到服務端
設備端向自定義Topic發布消息,服務端可通過物聯網平臺的AMQP訂閱或云產品流轉功能,接收來自設備端的消息。
設備與設備通信
設備端向自定義Topic發布消息,可通過物聯網平臺的云產品流轉或Topic消息路由,將消息轉發到另一個設備的Topic。
添加自定義Topic類
登錄物聯網平臺控制臺。
在實例概覽頁簽的全部環境下,找到對應的實例,單擊實例卡片。
在左側導航欄,選擇 。
在產品頁面,找到需要自定義Topic類的產品,并單擊對應操作列中的查看。
在產品詳情頁面,單擊 。
配置參數,單擊確認。
參數
描述
設備操作權限
設備對該Topic的操作權限,可設置為:
發布:設備可以將消息通過該Topic發送到物聯網平臺。
訂閱:設備訂閱該Topic后,當服務端應用發送消息到該Topic時,物聯網平臺會把消息發送到設備。
發布和訂閱:具備訂閱和發布兩個功能,即設備可以將消息通過該Topic發送到物聯網平臺,同時也可以通過該Topic接收消息。
Topic類
Topic格式必須以
/
進行分層,區分每個類目。類目命名只能包含字母、數字和下劃線(_),每級類目不能為空。對于云網關產品,Topic類完全由用戶自定義輸入。支持使用通配符
+
和#
,支持使用${deviceName}
通配DeviceName。對于非云網關產品:
只有設備操作權限為訂閱時,才可以使用通配符
+
和#
,以便設備實現批量訂閱Topic。自定義Topic類前三個類目已固定為
/${productKey}/${deviceName}/user/
,需將Topic類填充完整。
說明通配符使用方法,請參見本文下方的帶通配符的自定義Topic說明。
是否開啟代理訂閱
設備操作權限為訂閱或發布和訂閱,可開啟代理訂閱。
開啟代理訂閱后,設備與物聯網平臺建連時,物聯網平臺查詢已開啟代理訂閱的Topic,幫助設備完成訂閱。
是否開啟壓縮或解壓縮
尊享型企業版實例下,可開啟自定義Topic數據壓縮或解壓縮。數據壓縮功能,請參見數據壓縮。
描述
可輸入文字,描述該Topic類,用于區分不同Topic類的功能。
管理Topic類
您可在自定義Topic的Topic類列表中,找到對應自定義Topic類,執行以下操作。
編輯Topic類
單擊Topic類對應操作列的編輯。
在定義Topic類對話框,修改描述、設備操作權限和Topic類。
單擊確認。
設置是否開啟代理訂閱
找到操作權限為訂閱或發布和訂閱的Topic類,單擊是否開啟代理訂閱開關或。
刪除Topic類
刪除自定義Topic類后,與該自定義Topic相關的設備通信服務不可用、用戶業務中斷。請謹慎操作。
單擊Topic類對應操作列的刪除。
單擊確認。
帶通配符的自定義Topic說明
物聯網平臺支持自定義Topic類時,使用以下通配符。
由于帶通配符的Topic實質為一組Topic的集合,因此對于具備發布或訂閱權限的Topic,都不支持直接使用攜帶通配符的Topic發送具體消息。
例如:帶通配符的Topic不支持在設備的Topic列表頁面執行發布消息操作,將消息發布到已訂閱該Topic的設備。
通配符 | 描述 |
# | #只能出現在Topic的最后一個類目,代表本級及下級所有類目。 例如:自定義Topic |
+ | 代表本級所有類目。 例如:自定義Topic |
自定義Topic通信示例
服務端與設備端通信:
設備與設備通信:
存儲自定義Topic通信數據
自定義Topic中數據可流轉到熱數據存儲空間進行存儲。您可單擊Topic列表上方的點擊配置,跳轉到數據服務>數據存儲頁面的熱數據存儲頁簽,配置熱數據存儲規則。具體內容,請參見配置自定義Topic數據存儲。
相關API
Topic管理
API | 描述 |
創建產品自定義Topic類。 | |
修改產品自定義Topic類。 | |
查詢產品自定義Topic類。 | |
刪除產品自定義Topic類。 | |
添加Topic路由表。 | |
查詢Topic路由表。 | |
查詢Topic反向路由表。 | |
刪除Topic路由表。 |
Topic通信
API | 描述 |
為指定設備訂閱Topic。 | |
查詢設備已訂閱的Topic列表。 | |
設置自定義Topic是否支持保留消息廣播。 | |
通過自定義Topic向指定設備發布消息,支持向指定產品下訂閱了指定自定義Topic的在線設備發送廣播消息。 | |
通過自定義Topic向指定產品下的多個設備批量發送消息。 | |
向指定產品所有設備,或向訂閱了指定Topic的所有設備發布廣播消息。 | |
查詢設備上下行消息的詳情,包括消息的內容、消息的產生時間、發送消息的Topic等。 |
相關文檔
物聯網平臺要求設備上報消息的數據格式要求為Alink JSON,如果設備的消息格式不是Alink JSON,必須使用消息解析將設備上報的自定義Topic數據解析為Alink JSON格式,通過自定義Topic下發設備的數據格式沒有限制。消息解析的概念和使用步驟,請參見什么是消息解析。