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

Java SDK接入示例

本文介紹使用AMQP協議的JMS客戶端接入阿里云物聯網平臺,接收服務端訂閱消息的示例。

前提條件

已獲取消費組ID,并訂閱Topic消息。

準備開發環境

示例使用的開發環境如下:

下載Apache Qpid JMS客戶端

您可訪問Qpid JMS 0.57.0,查看Qpid JMS使用說明。

本文示例中,通過在Maven工程中添加如下依賴,下載Qpid JMS客戶端。

<!-- amqp 1.0 qpid client -->
 <dependency>
   <groupId>org.apache.qpid</groupId>
   <artifactId>qpid-jms-client</artifactId>
   <version>0.57.0</version>
 </dependency>
 <!-- util for base64-->
 <dependency>
   <groupId>commons-codec</groupId>
  <artifactId>commons-codec</artifactId>
  <version>1.10</version>
</dependency>

示例Demo

假設企業A和企業B分別有一個阿里云主賬號A和阿里云主賬號B,企業A使用阿里云主賬號在物聯網平臺已配置服務端訂閱:

  • 對于阿里云主賬號A或其下直接授權的RAM用戶

    說明

    對于直接授權的RAM用戶,需要給該RAM用戶授予操作AMQP服務端訂閱功能的權限(iot:sub),否則將會連接失敗。授權方法,請參見物聯網平臺RAM授權說明

    為提升物聯網平臺數據安全,推薦通過RAM角色授予RAM用戶指定的操作權限。具體說明,請參見下文。

    開發AMQP客戶端接收服務端訂閱的設備消息,請參見本賬號接收服務端訂閱消息

  • 對于通過RAM角色授權的RAM用戶

    RAM用戶可為阿里云主賬號A下的RAM用戶,或阿里云主賬號B下的RAM用戶,即支持使用本賬號(阿里云主賬號A)和跨賬號(阿里云主賬號B)的RAM用戶,開發AMQP客戶端接入本賬號的物聯網平臺,接收服務端訂閱的設備消息。

    開發AMQP客戶端接收服務端訂閱的設備消息,請參見通過RAM角色授權的RAM用戶接收服務端訂閱消息

本賬號接收服務端訂閱消息

  1. 下載Demo代碼包,并解壓。

  2. 打開IntelliJ IDEA,導入Demo包中的示例工程amqp-demo

    pom.xml文件中,已添加Maven依賴,下載Qpid JMS客戶端。

  3. src/main/java/com.aliyun.iotx.demo目錄下AmqpClient.java文件中,參照下表,修改AMQP的接入信息。

    重要
    • 請確保參數值輸入正確,否則AMQP客戶端接入會失敗。

    • 本示例Demo代碼中,添加了結束程序的代碼(Thread.sleep(60 * 1000);),即程序啟動成功,運行一分鐘后會結束。實際場景中,您可根據需要自行設置運行時間。

    更多參數說明,請參見AMQP客戶端接入說明

    參數

    說明

    accessKey

    阿里云主賬號或對應RAM用戶的AccessKey ID和AccessKey Secret。

    登錄物聯網平臺控制臺,將鼠標移至賬號頭像上,然后單擊AccessKey管理,獲取AccessKey ID和AccessKey Secret。

    accessSecret

    consumerGroupId

    當前物聯網平臺對應實例中的消費組ID。

    登錄物聯網平臺控制臺,在對應實例的消息轉發 > 服務端訂閱 > 消費組列表查看您的消費組ID。

    iotInstanceId

    實例ID。您可在物聯網平臺控制臺實例概覽頁面,查看當前實例的ID。

    • 若有ID值,必須傳入該ID值。

    • 若無實例概覽頁面或ID值,傳入空值,即iotInstanceId = ""

    clientId

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

    AMQP客戶端接入并啟動成功后,登錄物聯網平臺控制臺,在對應實例的消息轉發 > 服務端訂閱 > 消費組列表頁簽,單擊消費組對應的查看消費組詳情頁面將顯示該參數,方便您識別區分不同的客戶端。

    connectionCount

    啟動AMQP客戶端的連接數,最大不超過128個。用于實時消息推送的擴容。

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

    host

    AMQP接入域名。

    ${YourHost}對應的AMQP接入域名信息,請參見查看和配置實例終端節點信息(Endpoint)

  4. 運行AmqpClient.java程序。

    • 成功:返回類似如下日志信息,表示AMQP客戶端已接入物聯網平臺并成功接收消息。

      topic = /***********/******/thing/event/property/post,
      message = 2**************7,
      content = {"temperature":29,"humidity":29,"time":1617357297270}

      參數

      說明

      topic

      設備屬性上報的Topic。

      messageId

      消息的ID。

      content

      消息的內容。

    • 失敗:例如代碼或網絡環境有問題,AMQP客戶端連接物聯網平臺會失敗。

      您可根據日志提示,檢查代碼或網絡環境,然后修正問題,重新運行代碼。

通過RAM角色授權的RAM用戶接收服務端訂閱消息

前提條件

RAM用戶已通過RAM角色授權獲取企業A阿里云賬號物聯網平臺的服務端訂閱操作權限。具體操作,請參見本賬號RAM用戶授權服務端訂閱跨賬號RAM用戶授權服務端訂閱

接入示例

  1. 下載Demo代碼包,然后解壓。

  2. 打開IntelliJ IDEA,導入Demo包中的示例工程amqp-sts-demo

    pom.xml文件中,已添加Maven依賴,下載Qpid JMS客戶端。

  3. src/main/java/com/aliyun/iotx/demo目錄下AmqpStsTokenClient.java文件中,參照下表,修改AMQP的接入信息。

    重要
    • 請確保參數值輸入正確,否則AMQP客戶端接入會失敗。

    • STS Token有效期最長1個小時,需要定時更新AMQP客戶端接入中的建連信息,以確保AMQP客戶端正常重連成功。具體修改方式可參考示例Demo代碼中的 scheduledExecutorService.scheduleAtFixedRate部分。

    • 本示例Demo代碼中,添加了結束程序的代碼(Thread.sleep(6000 * 1000);),即程序啟動成功,運行一分鐘后會結束。實際場景中,您可根據需要自行設置運行時間。

    更多參數說明,請參見AMQP客戶端接入說明

    參數

    說明

    CONNECTION_COUNT

    啟動AMQP客戶端的連接數,最大不超過128個。用于實時消息推送的擴容。

    本賬號物聯網平臺的消費組詳情頁面會以"clientId-"+數字形式,顯示連接的客戶端。其中數字最小值為0。

    DURATION_SECONDS

    連接參數Token有效期,不能超過1小時,取值范圍:15~60分鐘。

    STS_ENDPOINT

    STS Token獲取服務接入點。具體信息,請參見服務接入點

    STS_ACCESS_KEY

    扮演企業A阿里云賬號下RAM角色的RAM用戶的AccessKey ID和AccessKey Secret。

    STS_ACCESS_SECRET

    STS_ROLE_ARN

    企業A阿里云賬號下要扮演的RAM角色ARN,格式為acs:ram::<account-id>:role/<role-name>

    其中,<role-name>部分會將角色的名稱全部轉換為小寫。創建角色后,您可以單擊角色名稱,在基本信息區域查看角色ARN。

    CONSUMER_GROUP_ID

    企業A阿里云賬號下服務端訂閱的消費組ID。

    可在物聯網平臺控制臺對應實例的消息轉發 > 服務端訂閱 > 消費組列表頁簽,查看消費組ID。

    IOT_INSTANCE_ID

    企業A阿里云賬號下物聯網平臺實例ID。

    可在物聯網平臺控制臺實例概覽頁簽,查看實例的ID。

    • 若有ID值,必須傳入該ID值。

    • 若無實例概覽頁簽或ID值,傳入空值,即IOT_INSTANCE_ID = ""

    HOST

    企業A阿里云賬號下物聯網平臺實例的AMQP接入域名。具體信息,請參見查看和配置實例終端節點信息(Endpoint)

  4. 運行AmqpStsTokenClient.java程序。

    • 成功:返回類似如下日志信息,表示AMQP客戶端已接入物聯網平臺并成功接收消息。

      topic = /***********/******/thing/event/property/post,
      message = 2**************7,
      content = {"temperature":29,"humidity":29,"time":1617357297270}

      參數

      說明

      topic

      設備屬性上報的Topic。

      messageId

      消息的ID。

      content

      消息的內容。

    • 失敗:例如代碼或網絡環境有問題,AMQP客戶端連接物聯網平臺會失敗。

      您可根據日志提示,檢查代碼或網絡環境,然后修正問題,重新運行代碼。

相關文檔

服務端訂閱消息相關錯誤碼,請參見消息相關錯誤碼