日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

什么是Topic

在發布/訂閱消息的MQTT協議中,Topic用于定義消息傳輸的通道和路徑,設備通過Topic將消息發布到物聯網平臺,物聯網平臺將消息發送給訂閱Topic的設備。為方便海量設備基于Topic進行通信,簡化授權操作,物聯網平臺定義了產品Topic類和設備Topic。本文介紹MQTT協議的原理、Topic的概念及分類。

工作原理

image

在上圖中分為設備、物聯網平臺和業務服務器三端,其中設備和物聯網平臺的通信基于MQTT協議。設備、業務服務器、物聯網平臺的通信過程請參見使用Topic通信

  • MQTT(Message Queuing Telemetry Transport)是一種基于發布/訂閱模型的消息傳輸協議,具有低開銷、高拓展、協議簡單、雙向通信等優點,可以利用較少的設備資源和網絡資源實現可靠、高效的長連接,被廣泛應用于物聯網領域。目前物聯網平臺支持5.0、3.1.1和3.1版本MQTT協議,協議規范請參見MQTT協議規范

  • MQTT客戶端(Client)MQTT代理者(Broker)

    • MQTT客戶端(Client):本文的客戶端(Client)指接入物聯網平臺的設備。設備和用戶的服務器不直接建立連接,而是通過代理者(Broker)進行通信。

    • MQTT代理者(Broker):本文的MQTT代理者(Broker)指阿里云物聯網平臺。代理者(Broker)是設備和業務服務器消息通信的中介,解耦了設備和業務服務器,實現了設備和業務服務器之間的異步通信。

  • MQTT協議消息的組成部分

    • 主題(Topic):使用正斜杠(/)作為分隔符構造字符串,例如/${productKey}/${deviceName}/user/update,訂閱該Topic的所有設備都會收到消息。

    • 消息內容(Payload):消息的具體內容。

  • MQTT協議消息的傳輸過程,以業務服務器向設備下發消息為例

    1. 設備訂閱相應的主題(Topic)。

    2. 服務器發送消息給物聯網平臺。

    3. 物聯網平臺接收消息,根據消息的主題(Topic)確定設備并發送消息。

    4. 業務服務器收到物聯網平臺的消息,確認消息已成功發送。

  • MQTT協議的重要參數,更多參數請參見MQTT協議規范

    • 消息服務質量(QoS):QoS=0代表物聯網平臺只推送一次消息給訂閱者,QoS=1代表訂閱者收到消息后必須返回puback給發布者,否則會一直推送消息。更多信息,請參見訂閱選項

    • 保活時間:當設備發起連接時會向物聯網平臺發送CONNECT消息,物聯網平臺使用CONNACK消息進行響應并保持連接,設備在保活時間間隔內至少需要發送一次報文,否則物聯網平臺會斷開與設備的連接。更多信息,請參見MQTT保活使用示例

    • 清除會話:設備和物聯網的會話狀態是臨時或持久。更多信息,請參見會話過期

使用限制

Topic相關、設備接入、連接通信等使用限制,請參見使用限制

Topic類型

詳細的Topic說明,請參見本文末尾的Topic分類和通信說明

  • 基礎通信Topic:設備使用物聯網平臺的物模型通信、OTA升級、任務管理等功能,必須使用的Topic。

  • 物模型Topic:物模型是對設備實際功能的抽象,從屬性服務事件三個維度,分別描述了該實體是什么、能做什么、能提供什么信息。例如智能風扇的開關狀態是屬性,開關的操作是服務,報警是事件。物模型的概念和使用,請參見什么是物模型

  • 自定義Topic:如果物模型不能滿足您的業務需求,可以使用自定義Topic,自定義Topic的前三個類目/ProductKey/${deviceName}/user已固定。管理和使用自定義Topic的操作,請參見使用自定義Topic通信

產品Topic類和設備Topic的概念

  • 基礎通信Topic和物模型Topic由物聯網平臺定義,以/sys/ota/shadow開頭。使用物模型Topic通信,需要先在產品下創建物模型。請參見單個添加物模型批量添加物模型

  • 自定義Topic需要用戶自行創建。產品的自定義Topic類設備Topic的關系如下圖:

    image
    1. 每個產品只有一個ProductKey,每個ProductKey下有多個Topic類,每個Topic類對ProductKey下所有設備通用。

    2. 產品Topic類是同一產品下所有設備的相同功能Topic的集合,以/${productKey}/${deviceName}開頭。

      1. Topic類的功能

        Topic類以正斜線(/)開頭并分隔每個類目,例如:/${productKey}/${deviceName}/user/update${productKey}${deviceName}為固定類目,前綴、后綴類目用于區分不同功能的消息。

        • ${productKey}表示產品的標識符ProductKey。在指定產品的Topic類中,需替換為具體產品的ProductKey值例如a19mzP****

        • ${deviceName}表示設備名稱。在產品Topic類中,${deviceName}代表該產品下所有設備,不需要替換為實際設備名稱。

      2. Topic類的操作權限。權限的主體是設備發布權限代表設備向該Topic類下的設備Topic發布消息,訂閱權限代表設備接收物聯網平臺的數據。

        • 服務器接收設備數據,需要設置Topic類的權限為發布。

        • 服務器向設備下發數據,需要設置Topic類的權限為訂閱。

          說明

          定義產品Topic類后,需要設備主動訂閱具有訂閱權限的Topic,相應Topic才會出現在設備詳情頁的Topic列表頁簽。設備訂閱Topic的操作,請參見使用Topic通信

    3. 設備Topic。添加設備后,產品的所有自定義Topic類會自動映射到設備上,生成具體的設備Topic。產品Topic類定義的操作權限,會映射到具體的設備Topic。在產品Topic類基礎上,使用具體的設備名稱例如device1替換產品Topic類中的${deviceName},得到設備Topic例如:/a19mzP****/device1/user/update

    4. 設備Topic歸屬于對應的設備,可用于消息通信。基于Topic的通信過程請參見使用Topic通信

定義設備Topic的流程

  1. 物聯網平臺控制臺,創建產品。具體操作,請參見創建產品

    創建產品后,物聯網平臺為該產品預定義了Topic類,包含基礎通信Topic物模型通信Topic自定義Topic。在產品詳情頁面,單擊Topic類列表頁簽,查看各功能及其Topic類。

  2. 為產品添加設備。具體操作,請參見創建設備

  3. 創建產品的自定義Topic類。具體操作,請參見使用自定義Topic通信

Topic分類和通信說明

物聯網平臺預定義的產品Topic類對應的設備Topic包含基礎通信Topic、物模型通信Topic和自定義Topic三種類型,詳細說明見下表。

類型

Topic類及數據格式

說明

基礎通信Topic

OTA升級

設備OTA升級消息的Topic,包括設備上報OTA模塊版本、物聯網平臺推送升級包信息、設備上報升級進度和設備請求獲取最新升級包信息。

設備標簽

上報設備標簽的Topic,上報設備的部分信息,如廠商、設備型號等。

時鐘同步

NTP服務同步請求和響應的Topic,解決嵌入式設備資源受限,系統不包含NTP服務,端上沒有精確時間戳的問題。

設備影子

設備影子數據通過Topic進行流轉,包括設備影子發布和設備接收影子變更。

配置更新

設備主動請求配置信息和物聯網平臺推送配置信息的Topic。

開發人員可在不用重啟設備或中斷設備運行的情況下,在線遠程更新設備的系統參數、網絡參數等配置信息。

廣播

廣播Topic。調用云端API PubBroadcast向訂閱了該Topic的所有設備發送廣播消息,實現批量控制設備。

物模型通信Topic

屬性上報

各物模型功能的Topic。

說明

在物聯網平臺,不可以調用Pub接口向物模型通信Topic發送消息。

在物聯網平臺的云端,通過物模型功能遠程控制設備,請調用SetDevicePropertySetDevicesProperty設置設備屬性值;調用InvokeThingServiceInvokeThingsService調用設備服務。

屬性設置

事件上報

服務調用

自定義Topic

自定義Topic類及格式

系統默認提供了3個自定義Topic類。您可根據業務需求,自定義Topic類。

Topic類是一個Topic模板配置,編輯更新某個Topic類后,可能對產品下所有設備使用該類Topic通信產生影響。建議在設備研發階段設計好,設備上線后不再變更Topic類。

相關文檔

常見問題