全部产品
Search
文档中心

IoT Platform:Membuat langganan sisi server MNS

更新时间:Jul 06, 2025

Topik ini menjelaskan cara membuat langganan sisi server Simple Message Queue (formerly MNS) (SMQ) untuk mendorong pesan tentang perubahan status perangkat di bawah suatu produk ke antrian MNS. Server Anda dapat menerima pesan tersebut dengan mendengarkan antrian MNS.

Prasyarat

  • Layanan Alibaba Cloud berikut telah diaktifkan:

  • Lingkungan pengembangan siap digunakan. Dalam contoh ini, lingkungan pengembangan Java berikut digunakan:

Informasi latar belakang

Gambar berikut menunjukkan aliran data yang bekerja.

Server-side subscription

Konfigurasi langganan sisi server

Di Konsol IoT Platform, buat langganan sisi server MNS dan pilih jenis pesan yang ingin dilanggan.

  1. Masuk ke Konsol IoT Platform.

  2. Di halaman Overview, klik All environment. Pada tab All environment, temukan instance yang ingin dikelola dan klik ID atau nama instance tersebut.

  3. Di bilah navigasi sebelah kiri, pilih Devices > Products. Di halaman Products, klik Create Product untuk membuat produk. Dalam contoh ini, sebuah produk detektor gas dibuat.

  4. Pilih Devices > Add Device untuk membuat perangkat di bawah produk detektor gas.

    Sebelum menggunakan Link SDK untuk mengembangkan perangkat, Anda harus mendapatkan sertifikat perangkat.

  5. Di bilah navigasi sebelah kiri, pilih Rules Engine > Server-side Subscription. Di halaman Server-side Subscription, klik Create Subscription untuk membuat langganan sisi server MNS. Untuk informasi lebih lanjut, lihat Konfigurasikan Langganan Sisi Server SMQ.

    Catatan

    Pertama kali Anda memilih MNS dari daftar drop-down Subscription Type, sebuah pesan akan meminta Anda untuk memberikan otorisasi kepada IoT Platform untuk mengakses MNS. Klik Authorize Now untuk masuk ke Konsol Resource Access Management (RAM). Klik Confirm Authorization Policy.

    Atur parameter Message Type menjadi Device Status Change Notification. Semua pesan tentang perubahan status perangkat di bawah produk didorong ke antrian MNS.

    Setelah Anda membuat langganan, IoT Platform secara otomatis membuat antrian di MNS. Antrian ini digunakan untuk menerima pesan dari IoT Platform. Format nama antrian adalah aliyun-iot-${yourProductKey}. Saat menggunakan MNS SDK untuk mendengarkan pesan dari antrian, Anda harus menentukan nama antrian tersebut.

    Di tab Subscriptions, arahkan pointer di atas ikon di sebelah MNS untuk melihat nama antrian MNS.

    Server-side subscription

Gunakan MNS SDK untuk menerima pesan

Dalam contoh ini, MNS SDK for Java digunakan.

  1. Unduh paket sampel MNS SDK for Java, dan ekstrak paket tersebut. Untuk mengunduh paket sampel, lihat Catatan Rilis SDK for Java.

    Dalam contoh ini, paket aliyun-sdk-mns-samples-1.1.9.1.zip digunakan.

  2. Di IntelliJ IDEA, pilih direktori aliyun-sdk-mns-samples-1.1.9.1 untuk mengimpor proyek.

  3. Di direktori lokal C:\Users\${YourComputerUserName}, buat file .aliyun-mns.properties. Tambahkan informasi identitas dalam format berikut ke dalam file. Informasi identitas ini digunakan oleh MNS untuk autentikasi.

    Catatan

    Di Linux, direktori home adalah /home/YOURNAME/. Di Windows, direktori home adalah C:\Users\YOURNAME.

    mns.accountendpoint=http://${your_accountId}.mns.${your_regionId}.aliyuncs.com
    mns.accesskeyid=${your_accesskeyid}
    mns.accesskeysecret=${your_accesskeysecret}

    Parameter

    Deskripsi

    accountendpoint

    Titik akhir MNS. Di konsol MNS, pilih wilayah tempat antrian MNS berada dan klik Details dari antrian untuk melihat titik akhir.

    accesskeyid

    ID AccessKey dan Rahasia AccessKey dari akun Alibaba Cloud Anda.

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

    accesskeysecret

  4. Tambahkan kode berikut ke file ComsumerDemo di direktori src\main\java\com.aliyun.mns.sample.Queue. Kode ini digunakan untuk menentukan nama antrian yang dibuat secara otomatis oleh IoT Platform.

        public static void main(String[] args) {
            CloudAccount account = new CloudAccount(
                    ServiceSettings.getMNSAccessKeyId(),
                    ServiceSettings.getMNSAccessKeySecret(),
                    ServiceSettings.getMNSAccountEndpoint());
            MNSClient client = account.getMNSClient(); //Inisialisasi klien.
    
            //Ekstraksi pesan.
            try{
                CloudQueue queue = client.getQueueRef("aliyun-iot-a1eN7La****");//Tentukan nama antrian yang dibuat secara otomatis oleh IoT Platform.
                for (int i = 0; i < 10; i++)
                {
                    Message popMsg = queue.popMessage(); //Tentukan periode timeout untuk polling panjang.
                    if (popMsg != null){
                        System.out.println("message handle: " + popMsg.getReceiptHandle());
                        System.out.println("message body: " + popMsg.getMessageBodyAsString()); //Dapatkan pesan mentah.
                        System.out.println("message id: " + popMsg.getMessageId());
                        System.out.println("message dequeue count:" + popMsg.getDequeueCount());
                        //<<tambahkan logika khusus Anda.>>
    
                        //Hapus pesan dari antrian.
                        queue.deleteMessage(popMsg.getReceiptHandle());
                        System.out.println("delete message successfully.\n");
                    }
                }
            }
  5. Jalankan file ComsumerDemo.java.

Konfigurasikan SDK perangkat

  1. Di halaman Link SDK, pilih bagian "SDK for Java".

  2. Unduh paket demo Link SDK for Java dan ekstrak paket tersebut.

    Catatan

    Dengan mengunduh demo, Anda setuju dengan Perjanjian Lisensi Perangkat Lunak.

  3. Di IntelliJ IDEA, impor direktori JavaLinkKitDemo sebagai proyek.

  4. Di file device_id, tentukan informasi tentang sertifikat perangkat.

    Server-side subscription

  5. Di file MqttSample di direktori src\main\java\com.aliyun.alink.devicesdk.demo, tentukan nama topik tempat data perangkat dikirimkan di bagian publish.

    Server-side subscription

  6. Di file HelloWorld di direktori src\main\java\com.aliyun.alink.devicesdk.demo, tentukan titik akhir instance IoT Platform yang ingin dihubungkan ke perangkat.

    Untuk informasi tentang cara mendapatkan titik akhir, lihat Kelola Titik Akhir Instance. Endpoint

  7. Jalankan file HelloWorld.java untuk menghubungkan perangkat ke IoT Platform.

Verifikasi hasil

Setelah Anda menjalankan kode, pesan dikirim ke antrian MNS. Pesan tersebut menunjukkan bahwa perangkat sedang online. Anda dapat menggunakan MNS SDK for Java untuk menerima pesan tersebut dan kemudian menghapus pesan dari antrian MNS.

Gambar berikut menunjukkan cara menerima pesan dan kemudian menghapus pesan tersebut.

Server-side subscription