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

IoT Platform:例:MQTT-WebSocket チャネル経由でデバイスを接続する

最終更新日:Jun 17, 2026

本トピックの Node.js サンプルコードを使用して、MQTT-WebSocket チャネル経由でデバイスを IoT Platform に接続します。

前提条件

インスタンスの IoT Platform コンソール で、プロダクトと、[device2] などのデバイスを作成します。ProductKey、DeviceName、DeviceSecret を含むデバイス証明書を取得します。詳細については、以下をご参照ください。

背景情報

WebSocket ベースのデバイス接続の詳細については、「MQTT-WebSocket 接続」をご参照ください。

この例では、IoT Platform デバイス側 Link SDK を使用してデバイス接続とメッセージングをシミュレートします。

説明

デバイス側 Link SDK では TLS 暗号化が有効になっています。追加の設定は不要です。

操作手順

  1. IoT Platform コンソールにログインします。

  2. [インスタンス概要] ページで、対応するデータタイプのインスタンスを見つけてクリックし、[インスタンス詳細] ページに移動します。

  3. ローカルコンピューターに、Node.js サンプルコードを保存する JavaScript ファイル (例: iot_device.js) を作成します。

    以下の Node.js サンプルコードを使用します。

    const iot = require('alibabacloud-iot-device-sdk');
    
    // デバイス証明書情報
    const productKey = 'a1W***';
    const deviceName = 'device2';
    const deviceSecret = 'ff01e59d1a***';
    
    // 新しいパブリックインスタンスおよびエンタープライズインスタンスの場合、インスタンス ID を指定する必要があります。古いパブリックインスタンスの場合、インスタンス ID を指定する必要はありません。
    const instanceId = '';
    
    // プロダクトとデバイスが配置されているリージョンの ID
    const region = 'cn-shanghai';
    
    const brokerUrl = instanceId
      ? `wss://${instanceId}.mqtt.iothub.aliyuncs.com:443`
      : `wss://${productKey}.iot-as-mqtt.${region}.aliyuncs.com:443`;
    
    const device = iot.device({
      productKey: `${productKey}`,
      deviceName: `${deviceName}`,
      deviceSecret: `${deviceSecret}`,
      brokerUrl,
      tls: true,
    });
    
    // 'connect' イベントをリッスンして MQTT 接続を確立し、カスタムトピックをサブスクライブし、カスタムトピックを介して IoT Platform にメッセージを送信します。
    device.on('connect', () => {
      device.subscribe(`/${productKey}/${deviceName}/user/get`);
      console.log('connect successfully!');
      device.publish(`/${productKey}/${deviceName}/user/update`, 'hello world!');
    });
    
    // 'message' イベントをリッスンします。
    device.on('message', (topic, payload) => {
      console.log(topic, payload.toString());
    });
    
    // 'error' イベントをリッスンします。
    device.on('error', (error) => {
      console.error(error);
    });
    
    // IoT Platform から切断する場合は、次の行のコメントを解除して end() 関数を呼び出します。
    //device.end();

    次の表の説明に従って、パラメータ値を実際のデバイス情報に置き換えてください。

    パラメータ

    説明

    productKey

    a1W***

    デバイス作成時に保存したデバイス証明書情報。詳細については、「デバイス証明書の取得」をご参照ください。

    この情報は、コンソールの [device2] デバイスの[デバイス詳細]ページでも確認できます。

    deviceName

    device2

    deviceSecret

    ff01e59d1a***

    instanceId

    ''

    IoT Platform コンソール[インスタンスの概要] ページで確認できるインスタンス ID です。

    • ID が表示されている場合は、指定する必要があります。

    • [インスタンス概要] ページが存在しないか、 ID が利用できない場合は、このパラメーターを空のままにします。 たとえば、iotInstanceId = '' です。

    インスタンスの詳細については、「インスタンスの概要」をご参照ください。

    region

    cn-shanghai

    IoT Platform デバイスが配置されているリージョンのリージョンコード。サポートされているリージョンコードについては、「リージョン一覧」をご参照ください。

  4. コマンド プロンプト ウィンドウを開き、iot_device.js ファイルが保存されているディレクトリに移動します。次のコマンドを実行して、Alibaba Cloud IoT SDK ライブラリをインストールします。

    npm install alibabacloud-iot-device-sdk --saveMQTT库

  5. コマンド プロンプト ウィンドウで、次のコマンドを実行して iot_device.js ファイルを実行し、デバイスを起動します。

    node iot_device.js

    出力には、デバイスが接続され、メッセージがパブリッシュされたことが示されます。接入设备

運用ログの表示と下り通信のテスト

  1. IoT Platform コンソール にログインします。

  2. コンソールの左上隅で、インスタンスが配置されているリージョンを選択します。次に、[インスタンス概要] ページで、対象のインスタンスをクリックします

    説明

    [インスタンス概要] ページが表示されない場合、代わりに IoT Platform 機能ページが表示されます。

  3. 左側のナビゲーションペインで、[デバイス管理] > [デバイス] を選択します。

    [デバイスリスト] タブでは、[device2] デバイスのステータスは [オンライン] です。設備在线

  4. [device2] デバイスの「操作」列で [表示] をクリックします。[デバイス詳細] ページで、[ログサービス] タブをクリックし、次に [ログの表示] をクリックします。

    [IoT プラットフォームログ] タブで、ログメッセージを表示します。ログ情報

  5. ログリストで、[デバイスからクラウドへのメッセージ] を見つけ、[表示] をクリックして、デバイスが IoT Platform に送信した情報を確認できます。

    上报消息

  6. IoT Platform からデバイスにメッセージを送信して、下り通信をテストします。

    1. [デバイス] ページに戻ります。[デバイスリスト] タブで、[device2]操作 列にある [表示] をクリックします

    2. [デバイス詳細] ページで [トピックリスト] タブをクリックし、サブスクライブしたトピック /a1W***/device2/user/get を見つけて [メッセージを公開] をクリックします。

    3. メッセージを入力し、[確認] をクリックします。

    4. デバイスが実行されているコマンド プロンプト ウィンドウに戻ります。デバイスがメッセージを受信し、通信が成功したことがわかります。

      接收消息

      また、[IoT Platform Logs] タブに戻って、詳細な通信ログを表示することもできます。

      通信日志