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

開源MQTT遷移至云消息隊列 MQTT 版

更新時間:

本文為您介紹如何將開源MQTT客戶端從其他開源MQTT服務端遷移至阿里云的云消息隊列 MQTT 版服務端上。

背景信息

云消息隊列 MQTT 版擁有多協議、多語言平臺的開發能力,并支持設備級權限控制以及SSL/TLS傳輸加密,您可以不變更開源客戶端,僅通過變更接入點和權限配置,將客戶端從開源MQTT服務端遷移至云消息隊列 MQTT 版上以獲取更高的安全性、穩定以及更完善的運維能力。

本文以Java語言為例,為您介紹如何變更開源客戶端SDK相關參數,以便能夠接入云消息隊列 MQTT 版服務端。

具體操作流程如下:

image

使用限制

  • 若遷移前使用的服務端為EMQX開源服務端,則原系統Topic不可用。例如$delayed、$share等以$開頭的Topic。

  • 遷移前使用過的開源MQTT客戶端必須符合MQTT 3.1.1協議。

  • 云消息隊列 MQTT 版客戶端不支持使用自定義用戶名/密碼方式連接。如原MQTT客戶端使用自定義用戶名/密碼方式鑒權,則遷移后需要使用和自定義用戶名/密碼方式相近的一機一密或簽名認證方式。

    簽名認證方式的訪問憑證在阿里云賬號下維護,一機一密認證方式的訪問憑證由設備端自行維護。更多信息,請參見鑒權概述

步驟一:創建云消息隊列 MQTT 版資源

創建實例

  1. 登錄云消息隊列 MQTT 版控制臺,并在左側導航欄單擊實例列表

  2. 在頂部菜單欄選擇目標地域,然后在頁面左上角單擊創建實例

  3. 在彈出的付費方式面板中,選擇按需選擇包年包月Serverless 按量付費,然后單擊確定

  4. 在彈出的商品購買頁中,選擇實例類型和各計費項的規格,然后單擊立即購買

    云消息隊列 MQTT 版支持的實例類型及功能差異,請參見實例類型

  5. 確認訂單頁面,根據提示完成支付。

創建Topic

  1. 登錄云消息隊列 MQTT 版控制臺,并在左側導航欄單擊實例列表

  2. 在頂部菜單欄選擇目標地域,然后在實例列表中單擊實例名稱進入實例詳情頁面。

  3. 在左側導航欄單擊Topic 管理,然后在頁面左上角,單擊創建 Topic
  4. 在創建Topic面板中,輸入要創建的Topic名稱描述,然后在左下角單擊確定

創建Group

  1. 登錄云消息隊列 MQTT 版控制臺,并在左側導航欄單擊實例列表

  2. 在頂部菜單欄選擇目標地域,然后在實例列表中單擊實例名稱進入實例詳情頁面。

  3. 在左側導航欄單擊Group 管理,然后在頁面左上角單擊創建 Group
  4. 在創建Group面板中,輸入Group ID,然后在左下角單擊確定

步驟二:開源SDK參數映射

引入SDK依賴

在原客戶端SDK的pom.xml文件中增加以下依賴:

<dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.48</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-onsmqtt</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.5.0</version>
        </dependency>

引入簽名方法

使用簽名認證方式進行認證的客戶端,需要引入簽名算法作為mqttConnectOptions.setPassword傳入的用戶密碼。

Tools.macSignature(clientId, secretKey).toCharArray()

具體代碼示例,請參見Demo工程

SDK參數值修改

您需要將SDK代碼中的參數值修改為云消息隊列 MQTT 版相關的參數值。

方法

待更新參數

說明

new MqttClient(broker, clientId, persistence)

broker云消息隊列 MQTT 版實例的接入點。

取值格式為:tcp:<Endpoint>:1883。Endpoint在云消息隊列 MQTT 版控制臺實例詳情頁面的終端SDK接入點區域獲取。

取值示例如下:tcp://mqtt-cn-******.mqtt.aliyuncs.com:1883。

clientId:客戶端ID。

clientId的取值格式為<GroupID>@@@<DeviceID>。GroupID在云消息隊列 MQTT 版控制臺創建,具體操作,請參見步驟一:創建云消息隊列 MQTT 版資源;DeviceID由用戶自定義。

GroupID、DeviceID以及clientId的取值規范,請參見客戶端限制

取值示例如下:GID_test@@@device001。

sampleClient.publish(topic, message)

topic云消息隊列 MQTT 版的Topic。

Topic在云消息隊列 MQTT 版控制臺創建,具體操作,請參見步驟一:創建云消息隊列 MQTT 版資源

connOpts.setUserName()

UserName:客戶端鑒權時使用的訪問憑證。

具體設置方法,請參見鑒權概述

connOpts.setPassword()

Password:客戶端鑒權時使用的訪問憑證密碼。

具體設置方法,請參見鑒權概述

步驟三:發布訂閱

參數修改完成后啟動開源SDK客戶端,將開源客戶端接入云消息隊列 MQTT 版服務端進行消息收發。

相關參考

共享訂閱

如果您需要使用共享訂閱能力,可以使用云消息隊列 MQTT 版提供的云端SDK。

云端SDK可用于云端分布式應用部署,天然支持共享訂閱,并提供消息收發、消息訂閱、客戶端上下線事件通知等能力,目前支持Java、Go語言的SDK。更多信息,請參見云端開發概述

云端SDK支持在云消息隊列 MQTT 版服務端層面進行訂閱發布,而非支持MQTT協議。