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

服務端訂閱(MNS)

本文介紹如何配置服務端訂閱,將產品下的設備狀態變化消息推送到輕量消息隊列(原 MNS) SMQ(Simple Message Queue (formerly MNS))隊列中;服務器通過監聽MNS隊列接收設備狀態變化消息。

前提條件

配置服務端訂閱

首先在物聯網平臺控制臺創建MNS服務端訂閱,選擇要訂閱的消息類型。

  1. 登錄物聯網平臺控制臺

  2. 實例概覽頁簽的全部環境下,找到對應的實例,單擊實例卡片。

  3. 在左側導航欄,選擇設備管理 > 產品,再單擊創建產品,創建一個氣體監測儀產品。

  4. 選擇設備 > 添加設備,在剛創建的氣體監測儀產品下創建設備。

    設備證書信息將會用于設備端SDK開發配置。

  5. 在左側導航欄,選擇消息轉發 > 服務端訂閱,然后單擊創建訂閱,創建MNS服務端訂閱。具體操作,請參見使用MNS(SMQ)服務端訂閱

    說明

    首次設置推送到MNS時,需單擊提示中的授權,進入RAM控制臺同意授權IoT訪問MNS。

    本示例中,選擇推送消息類型為設備狀態變化通知,即該產品下所有設備的狀態變化消息,都會被推送到MNS隊列中。

    訂閱成功后,物聯網平臺會在MNS中,自動創建一個接收物聯網平臺消息的隊列。隊列名稱格式為:aliyun-iot-${yourProductKey}。您在配置MNS SDK監聽消息時,需填入該隊列名稱。

    在訂閱列表中,單擊MNS右側的圖標,可查看MNS隊列名稱。

    設備消息訂閱

配置服務端MNS SDK接收消息

本示例使用MNS Java SDK Demo。

  1. 訪問MNS Java SDK版本說明,下載sample包文件,并解壓縮。

    本示例使用sample包文件為aliyun-sdk-mns-samples-1.1.9.1.zip

  2. 在IntelliJ IDEA中,導入工程aliyun-sdk-mns-samples-1.1.9.1文件夾。

  3. 在計算機的本地目錄C:\Users\${YourComputerUserName}下,添加一個PROPERTIES類型文件.aliyun-mns.properties,并在文件中輸入MNS訪問身份認證信息,格式如下:

    說明

    Linux系統用戶目錄為/home/YOURNAME/,Windows系統用戶目錄為C:\Users\YOURNAME

    mns.accountendpoint=http://${your_accountId}.mns.${your_regionId}.aliyuncs.com
    mns.accesskeyid=${your_accesskeyid}
    mns.accesskeysecret=${your_accesskeysecret}

    參數

    說明

    accountendpoint

    您的MNS服務Endpoint。請在輕量消息隊列(原 MNS)控制臺,選擇隊列所在地域單擊隊列的詳情查看。

    accesskeyid

    您的阿里云賬號的AccessKey ID和AccessKey Secret。

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

    accesskeysecret

  4. src\main\java\com.aliyun.mns.sample.Queue目錄下的ComsumerDemo文件中,配置物聯網平臺自動創建的輕量消息隊列(原 MNS)名稱。

        public static void main(String[] args) {
            CloudAccount account = new CloudAccount(
                    ServiceSettings.getMNSAccessKeyId(),
                    ServiceSettings.getMNSAccessKeySecret(),
                    ServiceSettings.getMNSAccountEndpoint());
            MNSClient client = account.getMNSClient(); //client初始化
    
            // 提取消息
            try{
                CloudQueue queue = client.getQueueRef("aliyun-iot-a1eN7La****");// 替換為物聯網平臺自動創建的隊列
                for (int i = 0; i < 10; i++)
                {
                    Message popMsg = queue.popMessage(); //長輪詢等待時間
                    if (popMsg != null){
                        System.out.println("message handle: " + popMsg.getReceiptHandle());
                        System.out.println("message body: " + popMsg.getMessageBodyAsString()); //獲取原始消息
                        System.out.println("message id: " + popMsg.getMessageId());
                        System.out.println("message dequeue count:" + popMsg.getDequeueCount());
                        //<<to add your special logic.>>
    
                        //從隊列中刪除消息
                        queue.deleteMessage(popMsg.getReceiptHandle());
                        System.out.println("delete message successfully.\n");
                    }
                }
            }
  5. 運行程序文件ComsumerDemo.java

配置設備端SDK

  1. 訪問設備接入Link SDK,選擇Java SDK。

  2. 在Java Link SDK的環境要求與配置中,下載Java SDK Demo,然后解壓縮。

  3. 在IntelliJ IDEA中,導入工程JavaLinkKitDemo

  4. device_id文件中,填入設備證書信息。

    設備消息訂閱

  5. src\main\java\com.aliyun.alink.devicesdk.demo目錄下的MqttSample文件中,將publish對應的Topic配置為您的設備Topic。

    設備消息訂閱

  6. src\main\java\com.aliyun.alink.devicesdk.demo目錄下的HelloWorld文件中,填入設備接入信息。

    設備接入信息的獲取方法,請參見查看和配置實例終端節點信息(Endpoint)接入地址

  7. 運行設備連接的程序文件:HelloWorld.java

結果驗證

設備端SDK運行后,設備上線消息通過服務端訂閱發送到輕量消息隊列(原 MNS)中。輕量消息隊列(原 MNS)SDK從隊列中接收消息,并同時將已接收的消息從隊列中刪除。

下圖展示輕量消息隊列(原 MNS)SDK接收并刪除消息。

設備消息訂閱