すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:IPv6 ベースの MQTT 接続

最終更新日:Mar 26, 2025

デバイスを IoT Platform に MQTT 経由で接続できます。この記事では、デバイスと IoT Platform 間で IPv6 ベースの MQTT 接続を確立する方法について説明します。

制限事項

IPv6 ベースの MQTT 接続は、中国 (上海) リージョンでのみサポートされています。

IoT Platform にデバイスを接続する

  1. TLS 暗号化に使用される ルート証明書 をダウンロードします。ルート証明書の使用方法の詳細については、「CA 証明書」をご参照ください。
  2. MQTT 接続を設定するようにデバイスを開発します。

    Alibaba Cloud が提供するデバイス SDK を使用して IoT Platform に接続することをお勧めします。カスタムデバイス SDK を使用する場合は、署名メカニズムを設定する必要があります。詳細については、「MQTT 接続の署名を作成する例」をご参照ください。

    次の表にパラメーターを示します。

    パラメーター説明
    ドメイン名とポートドメイン名は ipv6.itls.cn-shanghai.aliyuncs.com で、ポート番号は 1883 です。
    可変ヘッダー:キープアライブCONNECT メッセージには、キープアライブ期間を含める必要があります。キープアライブ期間の有効値:30 ~ 1,200 秒。キープアライブ パラメーターの値がこの範囲内にない場合、IoT Platform は接続を拒否します。300 秒より大きい値を設定することをお勧めします。ネットワーク接続が不安定な場合は、キープアライブ期間を高い値に設定することをお勧めします。
    MQTT CONNECT メッセージのパラメーター
    mqttClientId: clientId+"|securemode=2,signmethod=hmacsha1,timestamp=132323232|"
    mqttUsername: deviceName+"&"+productKey
    mqttPassword: sign_hmac(deviceSecret,content)

    mqttPassword:パスワード。計算方法:サーバーに送信されるパラメーターをアルファベット順にソートし、指定された署名アルゴリズムに基づいてパラメーターを暗号化します。

    content:サーバーに送信されるパラメーターを連結した文字列。productKeydeviceNametimestampclientId など、これらのパラメーターはアルファベット順にソートされ、デリミタなしで連結されます。

    • clientId:クライアントの ID。デバイスの MAC アドレスまたはシリアル番号 (SN) をクライアント ID として使用することをお勧めします。クライアント ID は 64 文字を超えることはできません。
    • timestamp:現在の時刻(ミリ秒単位)。このパラメーターは省略可能です。
    • mqttClientId:拡張パラメーターは縦棒 (|) の間に配置されます。
    • signmethod:署名アルゴリズム。有効値:hmacmd5、hmacsha1、hmacsha256、sha256。デフォルト値:hmacmd5。
    • securemode:セキュリティモード。値を 2(直接 TLS 接続)に設定します。

    例:

    次の値が指定されているとします:clientId=12345, deviceName=device, productKey=pk, timestamp=789, signmethod=hmacsha1, deviceSecret=secret。次のコードは、TCP 経由で送信される MQTT CONNECT メッセージのパラメーターを示しています。

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

    暗号化されたパスワードは、バイナリ文字列から変換された 16 進数文字列です。次のコードに結果を示します。

    FAFD82A3D602B37FB0FA8B7892F24A477F85****

関連情報

TCP 経由で MQTT 接続を確立する