設備連接物聯網平臺后,數據直接上報至物聯網平臺,平臺上的數據可以通過AMQP通道流轉至您的服務器。本文為您介紹通過配置AMQP服務端訂閱,實現企業服務器通過接入AMQP客戶端,接收路燈設備數據的完整流程。
背景信息
通過AMQP服務端訂閱獲取設備消息流程如下圖所示。詳細說明,請參見配置AMQP服務端訂閱和AMQP客戶端接入說明。
操作步驟
登錄物聯網平臺控制臺。
在實例概覽頁簽,單擊公共實例。
為消息消費端配置消費組身份,用于企業服務器通過消費組獲取轉發的消息。
在左側導航欄選擇 ,單擊消費組列表頁簽。
單擊創建消費組。
在創建消費組對話框中,設置消費組名稱為路燈消費組,單擊確認。
為路燈設備所屬產品配置服務端訂閱,用于您的服務器直接訂閱產品下多種類型的消息 。
在左側導航欄選擇 。
在服務端訂閱頁面的訂閱列表頁簽下,單擊創建訂閱。
在創建訂閱對話框,設置參數后單擊確認。
參數
說明
產品
選擇路燈。
訂閱類型
選擇AMQP。
消費組
選擇上一步創建的路燈消費組。
推送消息類型
選擇設備上報消息。
AMQP客戶端接入物聯網平臺。
示例使用Java開發語言,推薦使用Apache Qpid JMS客戶端,實現AMQP客戶端的接入。您可訪問Qpid JMS 0.57.0,查看Qpid JMS客戶端使用說明。
示例使用的開發環境如下:
操作系統:Windows 10 64位
JDK版本:JDK8
集成開發環境:IntelliJ IDEA社區版
使用示例代碼,實現AMQP客戶端接入的具體操作如下:
下載Demo代碼包,并解壓。
打開IntelliJ IDEA,導入Demo包中的示例工程amqp-demo,使用Maven構建工程。
在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)。
運行示例代碼后,返回類似如下日志信息,表示AMQP客戶端已接入物聯網平臺并成功接收消息。
說明本示例Demo代碼中,添加了結束程序的代碼(
Thread.sleep(60 * 1000);
),即程序啟動成功,運行一分鐘后會結束。實際場景中,您可根據需要自行設置運行時間。