All Products
Search
Document Center

IoT Platform:Menghubungkan klien ke IoT Platform menggunakan SDK untuk Node.js

Last Updated:Jul 02, 2025

Topik ini menjelaskan cara menggunakan SDK untuk Node.js guna menghubungkan klien Advanced Message Queuing Protocol (AMQP) ke Alibaba Cloud IoT Platform dan menerima pesan dari IoT Platform melalui fitur langganan sisi server.

Prasyarat

ID grup konsumen yang berlangganan pesan dari topik telah diperoleh.

  • Anda dapat menggunakan grup konsumen default bernama DEFAULT_GROUP atau membuat grup konsumen di konsol IoT Platform. Untuk informasi lebih lanjut, lihat Mengelola Grup Konsumen.

  • Anda dapat menggunakan grup konsumen untuk berlangganan pesan dari topik. Untuk informasi lebih lanjut, lihat Mengonfigurasi Langganan Sisi Server AMQP.

Lingkungan pengembangan

Gunakan Node.js versi 8.0.0 atau yang lebih baru.

Unduh dan instal SDK

Kami merekomendasikan penggunaan pustaka rhea. Untuk mengunduh pustaka dan melihat petunjuknya, kunjungi rhea.

Dalam contoh ini, perintah npm install rhea digunakan untuk mengunduh pustaka rhea.

Prosedur

  1. Unduh dan instal Node.js pada sistem operasi Windows atau Linux. Dalam contoh ini, digunakan Windows 10 (64-bit). Unduh paket instalasi node-v14.15.1-x64.msi.

  2. Buka jendela Command Prompt dan jalankan perintah berikut untuk memeriksa versi Node.js:

    node --version

    Jika instalasi berhasil, nomor versi berikut akan ditampilkan:

    v14.15.1
  3. Buat file JavaScript seperti amqp.js di komputer Anda untuk menyimpan kode contoh Node.js.

    Anda dapat mengonfigurasi parameter dalam kode contoh sesuai dengan deskripsi parameter dalam tabel berikut.

    Penting

    Pastikan Anda menentukan nilai parameter yang valid. Jika tidak, klien AMQP gagal terhubung ke IoT Platform.

    const container = require('rhea');
    const crypto = require('crypto');
    
    // Jika Anda melakukan hard-code pasangan AccessKey dalam kode proyek, pasangan AccessKey tersebut mungkin terungkap jika kode proyek bocor. Dalam hal ini, sumber daya dalam akun Anda menjadi tidak aman. Contoh kode berikut memberikan contoh tentang cara memperoleh pasangan AccessKey dari variabel lingkungan. Contoh ini hanya untuk referensi.
    var accessKey = process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'];
    var accessSecret = process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'];
    
    // Buat koneksi.
    var connection = container.connect({
        // Titik akhir. Untuk informasi lebih lanjut, lihat topik "Menghubungkan klien AMQP ke IoT Platform".
        'host': '${YourHost}',
        'port': 5671,
        'transport':'tls',
        'reconnect':true,
        'idle_time_out':60000,
        // Struktur parameter userName. Untuk informasi lebih lanjut, lihat topik "Menghubungkan klien AMQP ke IoT Platform".
        'username':'${YourClientId}|authMode=aksign,signMethod=hmacsha1,timestamp=1573489088171,authId=' + accessKey + ',iotInstanceId=${YourIotInstanceId},consumerGroupId=${YourConsumerGroupId}|', 
        // Hitung tanda tangan. Untuk informasi lebih lanjut tentang cara membuat password, lihat topik "Menghubungkan klien AMQP ke IoT Platform".
        'password': hmacSha1(accessSecret, 'authId='+ accessKey +'&timestamp=1573489088171'),
    });
    
    // Buat tautan penerima.
    var receiver = connection.open_receiver();
    
    // Fungsi callback yang dipanggil ketika pesan diterima dari IoT Platform.
    container.on('message', function (context) {
        var msg = context.message;
        var messageId = msg.message_id;
        var topic = msg.application_properties.topic;
        var content = Buffer.from(msg.body.content).toString();
    
        // Kembalikan isi pesan.
        console.log(content);
    
        // Kirim pesan ACK. Jangan implementasikan logika yang memakan waktu dalam fungsi callback.
        context.delivery.accept();
    });
    
    // Hitung tanda tangan password.
    function hmacSha1(key, context) {
        return Buffer.from(crypto.createHmac('sha1', key).update(context).digest())
            .toString('base64');
    }

    Parameter

    Contoh

    Deskripsi

    host

    iot-cn-***.amqp.iothub.aliyuncs.com

    Titik akhir yang digunakan oleh klien AMQP untuk terhubung ke IoT Platform.

    Untuk informasi lebih lanjut tentang titik akhir yang dapat Anda tentukan untuk variabel ${YourHost}, lihat Kelola titik akhir instance.

    username

    'test |authMode=aksign,signMethod=hmacsha1,timestamp=1573489088171,authId=LTAI****************,iotInstanceId=,consumerGroupId=DEFAULT_GROUP|'

    Informasi autentikasi yang diperlukan untuk terhubung ke IoT Platform. Deskripsi:

    • ${YourClientId}: Ganti variabel ini dengan ID klien Anda. Anda dapat menentukan ID klien kustom berdasarkan kebutuhan bisnis Anda. ID klien tidak boleh melebihi 64 karakter. Kami merekomendasikan Anda menggunakan pengenal unik sebagai ID klien, seperti UUID, alamat MAC, atau alamat IP server tempat klien berjalan.

      Setelah klien AMQP terhubung ke IoT Platform dan dimulai, lakukan langkah-langkah berikut untuk melihat detail klien: Masuk ke konsol IoT Platform dan klik kartu instance yang ingin Anda kelola. Di panel navigasi di sebelah kiri, pilih Message Forwarding > Server-side Subscription. Pada tab Consumer Groups, temukan grup konsumen yang ingin Anda kelola dan klik View di kolom Tindakan. ID setiap klien ditampilkan pada tab Status Grup Konsumen. Anda dapat menggunakan ID klien untuk mengidentifikasi klien dengan mudah.

    • ${YourAccessKeyId} dan ${YourAccessKeySecret}: Ganti variabel dengan ID AccessKey dan Rahasia AccessKey Anda.

      Masuk ke konsol IoT Platform, arahkan penunjuk ke foto profil di sudut kanan atas, lalu klik AccessKey Management untuk mendapatkan ID AccessKey dan Rahasia AccessKey.

      Catatan

      Jika Anda menggunakan Pengguna Resource Access Management (RAM), Anda harus melampirkan kebijakan AliyunIOTFullAccess ke pengguna RAM. Kebijakan ini memungkinkan pengguna RAM mengelola sumber daya IoT Platform. Jika tidak, koneksi ke IoT Platform gagal. Untuk informasi lebih lanjut, lihat Akses IoT Platform sebagai pengguna RAM.

    • ${YourIotInstanceId}: Ganti variabel ini dengan ID instance Anda.

      Masuk ke konsol IoT Platform. Pada tab Overview, lihat ID instance.

      Penting

      Jika tab Overview tidak ditampilkan atau instance Anda tidak memiliki ID, hapus variabel ${YourIotInstanceId}.

    • ${YourConsumerGroupId}: Ganti variabel ini dengan ID grup konsumen Anda.

      Untuk melihat ID grup konsumen, lakukan langkah-langkah berikut: Masuk ke konsol IoT Platform dan klik kartu instance yang ingin Anda kelola. Di panel navigasi di sebelah kiri, pilih Message Forwarding > Server-side Subscription. ID ditampilkan pada tab Consumer Groups.

    password

    hmacSha1('yourAccessKeySecret'*,'authId=LTAI****************&timestamp=1573489088171')

  4. Buka Command Prompt dan jalankan perintah cd untuk masuk ke direktori tempat file amqp.js disimpan. Kemudian, jalankan perintah npm untuk mengunduh pustaka rhea. Gambar berikut menunjukkan struktur direktori setelah pustaka diunduh.

    npm install rhea

    Struktur Direktori

  5. Jalankan perintah berikut di Command Prompt untuk menjalankan file amqp.js. Dengan cara ini, klien AMQP dimulai.

    node amqp.js

Hasil contoh

  • Jika informasi serupa dengan output berikut ditampilkan, klien AMQP berhasil terhubung ke IoT Platform dan dapat menerima pesan.Berhasil

  • Jika informasi serupa dengan output berikut ditampilkan, klien AMQP gagal terhubung ke IoT Platform.

    Periksa kode atau lingkungan jaringan berdasarkan log, perbaiki masalah, lalu jalankan kode lagi.

    Gagal

Referensi

Untuk informasi lebih lanjut tentang kode kesalahan yang terkait dengan fitur langganan sisi server, lihat bagian Kode Kesalahan Terkait Pesan dari topik "Log IoT Platform".