全部產品
Search
文件中心

IoT Platform:服務端訂閱裝置訊息

更新時間:Jul 23, 2024

裝置串連物聯網平台後,資料直接上報至物聯網平台,平台上的資料可以通過AMQP通道流轉至您的伺服器。本文為您介紹通過配置AMQP服務端訂閱,實現企業伺服器通過接入AMQP用戶端,接收路燈裝置資料的完整流程。

背景資訊

通過AMQP服務端訂閱擷取裝置訊息流程程如下圖所示。詳細說明,請參見配置AMQP服務端訂閱AMQP用戶端接入說明AMQP

操作步驟

  1. 登入物聯網平台控制台

  2. 執行個體概覽頁簽,單擊Public Instance

  3. 為訊息消費端配置消費組身份,用於企業伺服器通過消費組擷取轉寄的訊息。

    1. 在左側導覽列選擇訊息轉寄 > 服務端訂閱,單擊消費組列表頁簽。

    2. 單擊建立消費組

    3. 建立消費組對話方塊中,設定消費組名稱為路燈消費組,單擊確認

  4. 為路燈裝置所屬產品佈建服務端訂閱,用於您的伺服器直接訂閱產品下多種類型的訊息 。

    1. 在左側導覽列選擇訊息轉寄 > 服務端訂閱

    2. 服務端訂閱頁面的訂閱列表頁簽下,單擊建立訂閱

    3. 建立訂閱對話方塊,設定參數後單擊確認

      參數

      說明

      產品

      選擇路燈

      訂閱類型

      選擇AMQP

      消費組

      選擇上一步建立的路燈消費組

      推送訊息類型

      選擇裝置上報訊息

  5. AMQP用戶端接入物聯網平台。

    樣本使用Java開發語言,推薦使用Apache Qpid JMS用戶端,實現AMQP用戶端的接入。您可訪問Qpid JMS 0.57.0,查看Qpid JMS用戶端使用說明。

    樣本使用的開發環境如下:

    使用範例程式碼,實現AMQP用戶端接入的具體操作如下:

    1. 下載Demo程式碼封裝,並解壓。

    2. 開啟IntelliJ IDEA,匯入Demo包中的樣本工程amqp-demo,使用Maven構建工程。

    3. src/main/java/com.aliyun.iotx.demo目錄下AmqpClient.java檔案中,參照下表,修改JMS用戶端接入物聯網平台代碼中的參數值。

      參數

      樣本

      說明

      accessKey

      LTAI4GFGQvKuqHJhFa******

      登入物聯網平台控制台,移動滑鼠指標至帳號頭像上,然後單擊AccessKey管理,擷取AccessKey ID和AccessKey Secret。

      說明

      如果使用RAM使用者,您需授予該使用者管理物聯網平台的許可權(AliyunIOTFullAccess),否則會串連失敗。授權方法請參見授權RAM使用者訪問物聯網平台

      accessSecret

      iMS8ZhCDdfJbCMeA005sieKe******

      consumerGroupId

      VWhGZ2QnP7kxWpeSSjt******

      步驟3中建立的路燈消費組ID。請在物聯網平台控制台公用執行個體頁面,選擇訊息轉寄 > 服務端訂閱,單擊消費組列表頁簽,找到路燈消費組擷取消費組ID。

      iotInstanceId

      • 新版公用執行個體的樣本:iot-w3***

      • 舊版公用執行個體的樣本:""

      執行個體ID。

      • 新版公用執行個體:在執行個體概覽頁面的公用執行個體下,查看ID值。

      • 舊版公用執行個體:沒有執行個體ID,傳入空值。

      執行個體的更多詳細說明,請參見執行個體概述

      clientId

      12345

      表示用戶端ID,需您自訂,長度不可超過64個字元。建議使用您的AMQP用戶端所在伺服器UUID、MAC地址、IP等唯一標識。

      AMQP用戶端接入並啟動成功後,登入物聯網平台控制台,在對應執行個體的訊息轉寄 > 服務端訂閱 > 消費組列表頁簽,單擊消費組對應的查看消費組詳情頁面將顯示該參數,方便您識別區分不同的用戶端。

      connectionCount

      4

      啟動AMQP用戶端的串連數,最大不超過128個。用於即時訊息推送的擴容。

      消費組詳情頁面會以${clientId}+"-"+數字形式,顯示串連的用戶端。其中數字最小值為0。

      host

      • 新版公用執行個體的樣本:iot-***.amqp.iothub.aliyuncs.com

      • 舊版公用執行個體的樣本:198426864******.iot-amqp.cn-shanghai.aliyuncs.com

      AMQP接入網域名稱。

      • 對於Java、.NET、Python2.7、Node.js、Go用戶端:連接埠號碼為5671。

      • 對於Python3、PHP用戶端:連接埠號碼為61614。

      詳細說明,請參見查看和配置執行個體終端節點資訊(Endpoint)

    4. 運行範例程式碼後,返回類似如下日誌資訊,表示AMQP用戶端已接入物聯網平台並成功接收訊息。

      說明

      本樣本Demo代碼中,添加了結束程式的代碼(Thread.sleep(60 * 1000);),即程式啟動成功,運行一分鐘後會結束。實際情境中,您可根據需要自行設定已耗用時間。

      運行結果