全部產品
Search
文件中心

IoT Platform:基於IPv6的MQTT串連通訊

更新時間:Jun 30, 2024

本文主要介紹基於IPv6的MQTT協議串連裝置的配置說明。您可通過MQTT直連方式將裝置接入物聯網平台。

使用限制

目前,僅華東2(上海)地區支援基於IPv6協議的MQTT通道。

裝置端接入物聯網平台

  1. 下載用於TLS加密的根憑證。根憑證使用方法,請參見CA Certificates
  2. 開發裝置端,配置MQTT串連。

    建議您使用阿里雲提供的裝置端SDK接入物聯網平台。如果您自行開發裝置端,簽名時,請參見MQTT串連簽名樣本

    需配置的資訊如下表。

    欄位具體資訊
    串連網域名稱和連接埠網域名稱為ipv6.itls.cn-shanghai.aliyuncs.com,連接埠號碼為1883。
    可變前序(variable header):Keep AliveCONNECT指令中需包含Keep Alive(保活時間)。保活心跳時間取值範圍為30至1200秒。如果心跳時間不在此區間內,物聯網平台會拒絕串連。建議取值300秒以上。如果網路不穩定,將心跳時間設定高一些。
    MQTT的CONNECT報文參數
    mqttClientId: clientId+"|securemode=2,signmethod=hmacsha1,timestamp=132323232|"
    mqttUsername: deviceName+"&"+productKey
    mqttPassword: sign_hmac(deviceSecret,content)

    mqttPassword:sign簽名需把提交給伺服器的參數按字典排序後,根據signmethod加簽。

    content的值為提交給伺服器的參數(ProductKeyDeviceNametimestampclientId),按照字母順序排序, 然後將參數值依次拼接。

    • clientId:表示用戶端ID,建議使用裝置的MAC地址或SN碼,64字元內。
    • timestamp:表示目前時間毫秒值,可以不傳遞。
    • mqttClientId:格式中||內為擴充參數。
    • signmethod:表示簽名演算法類型。支援hmacmd5,hmacsha1和hmacsha256,預設為hmacmd5。
    • securemode:表示目前安全模式,取值2 (TLS直連模式)。

    樣本:

    假設clientId = 12345,deviceName = device, productKey = pk, timestamp = 789,signmethod=hmacsha1,deviceSecret=secret,那麼使用TLS方式提交給MQTT的參數如下:

    mqttclientId=12345|securemode=2,signmethod=hmacsha1,timestamp=789|
    mqttUsername=device&pk
    mqttPassword=hmacsha1("secret","clientId12345deviceNamedeviceproductKeypktimestamp789").toHexString(); 

    加密後的Password為二進位轉16進位字串,樣本結果為:

    FAFD82A3D602B37FB0FA8B7892F24A477F85****

相關文檔

MQTT-TLS串連通訊