All Products
Search
Document Center

IoT Platform:Server-side subscription (MNS)

Last Updated:Jun 21, 2026

Topik ini menjelaskan cara mengonfigurasi langganan sisi server untuk mendorong notifikasi perubahan status perangkat suatu Produk ke antrian Simple Message Queue (formerly MNS) (SMQ). Server Anda kemudian dapat menerima notifikasi tersebut dengan mendengarkan antrian MNS.

Prasyarat

Konfigurasi langganan sisi server

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

  1. Masuk ke Konsol IoT Platform.

  2. Pada halaman Overview, temukan instans yang ingin Anda kelola lalu klik ID instans atau nama instans tersebut.

  3. Di panel navigasi sebelah kiri, pilih Devices > Products. Lalu, klik Create Product untuk membuat produk detektor gas.

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

    Sertifikat perangkat diperlukan saat Anda mengonfigurasi SDK sisi perangkat.

  5. Di panel navigasi sebelah kiri, pilih Rules Engine > Server-side Subscription. Lalu, klik Create Subscription untuk membuat langganan sisi server untuk MNS. Untuk informasi selengkapnya, lihat Use server-side subscriptions for MNS.

    Catatan

    Saat pertama kali mengatur penerusan pesan ke MNS, Anda harus mengklik Authorize pada prompt. Anda kemudian akan diarahkan ke Konsol RAM untuk memberikan akses IoT Platform ke MNS.

    Pada contoh ini, pilih Device Status Change Notification sebagai jenis pesan. Hal ini memastikan bahwa semua notifikasi perubahan status perangkat untuk produk tersebut didorong ke antrian MNS.

    Setelah langganan dibuat, IoT Platform secara otomatis membuat antrian di MNS untuk menerima pesan. Nama antrian mengikuti format aliyun-iot-${yourProductKey}. Anda harus menggunakan nama antrian ini saat mengonfigurasi SDK MNS untuk mendengarkan pesan.

    Di daftar langganan, klik ikon di samping MNS untuk melihat nama antrian MNS.

Konfigurasi SDK MNS sisi server

Contoh ini menggunakan demo SDK MNS untuk Java.

  1. Buka catatan rilis MNS SDK untuk Java, unduh paket sampel, lalu ekstrak.

    Contoh ini menggunakan paket sampel aliyun-sdk-mns-samples-1.1.9.1.zip.

  2. Di IntelliJ IDEA, impor folder aliyun-sdk-mns-samples-1.1.9.1 sebagai proyek.

  3. Di direktori lokal Anda di C:\Users\${YourComputerUserName}, buat file properties bernama .aliyun-mns.properties. Di file ini, tambahkan kredensial autentikasi MNS Anda dalam format berikut:

    Catatan

    Direktori home di Linux adalah /home/YOURNAME/. Direktori home di Windows 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 untuk layanan MNS Anda. Anda dapat menemukannya di Konsol Message Service (MNS). Pilih wilayah tempat antrian Anda berada lalu klik Details untuk antrian tersebut.

    accesskeyid

    ID AccessKey dan Rahasia AccessKey Akun Alibaba Cloud Anda.

    Masuk ke Konsol IoT Platform, arahkan kursor ke gambar profil, lalu klik AccessKey Management untuk mendapatkan ID AccessKey dan Rahasia AccessKey.

    accesskeysecret

  4. Di file ComsumerDemo.java, yang berada di direktori src\main\java\com.aliyun.mns.sample.Queue, tentukan nama antrian Simple Message Queue (formerly MNS) yang secara otomatis dibuat oleh IoT Platform.

        public static void main(String[] args) {
            CloudAccount account = new CloudAccount(
                    ServiceSettings.getMNSAccessKeyId(),
                    ServiceSettings.getMNSAccessKeySecret(),
                    ServiceSettings.getMNSAccountEndpoint());
            MNSClient client = account.getMNSClient(); // Inisialisasi client.
            // Konsumsi pesan.
            try{
                CloudQueue queue = client.getQueueRef("aliyun-iot-a1eN7La****");// Ganti ini dengan nama antrian yang secara otomatis dibuat oleh IoT Platform.
                for (int i = 0; i < 10; i++)
                {
                    Message popMsg = queue.popMessage(); // Ambil satu pesan dari antrian.
                    if (popMsg != null){
                        System.out.println("message handle: " + popMsg.getReceiptHandle());
                        System.out.println("message body: " + popMsg.getMessageBodyAsString()); // Dapatkan isi pesan mentah.
                        System.out.println("message id: " + popMsg.getMessageId());
                        System.out.println("message dequeue count:" + popMsg.getDequeueCount());
                        // Tambahkan logika pemrosesan pesan Anda di sini.
                        // Hapus pesan dari antrian.
                        queue.deleteMessage(popMsg.getReceiptHandle());
                        System.out.println("delete message successfully.\n");
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
  5. Jalankan file ComsumerDemo.java.

Konfigurasi SDK sisi perangkat

  1. Buka Link SDK lalu pilih SDK untuk Java.

  2. Unduh demo Link SDK untuk Java lalu ekstrak paket tersebut.

    Catatan

    Dengan mengunduh demo ini, Anda menyetujui Perjanjian Lisensi Perangkat Lunak.

  3. Di IntelliJ IDEA, impor proyek JavaLinkKitDemo.

  4. Di file device_id, masukkan informasi sertifikat perangkat Anda.

    {
      "productKey": "xxx",
      "deviceName": "Esensor",
      "productSecret": "",
      "deviceSecret": "1xxx?2"
    }
  5. Di file MqttSample.java, yang berada di direktori src\main\java\com.aliyun.alink.devicesdk.demo, atur topik publish ke topik perangkat Anda.

    public class MqttSample extends BaseSample {
        final static String TAG = "MqttSample";
        public MqttSample(String pk, String dn) { super(pk, dn); }
        /**
         * Contoh API publish.
         */
        public void publish() {
            MqttPublishRequest request = new MqttPublishRequest();
            // Tentukan topik berdasarkan kasus penggunaan Anda.
            request.topic = "/sys/" + productKey + "/" + deviceName + "/thing/deviceinfo/update";
        }
    }
  6. Di file HelloWorld.java, yang berada di direktori src\main\java\com.aliyun.alink.devicesdk.demo, masukkan informasi koneksi perangkat.

    Untuk mendapatkan informasi koneksi perangkat, lihat View and configure instance endpoints. Format channelHost adalah {productKey}.iot-as-mqtt.{region}.aliyuncs.com:1883. Contoh kode:

    public void init(final DeviceInfoData deviceInfoData) {
        this.pk = deviceInfoData.productKey;
        this.dn = deviceInfoData.deviceName;
        LinkKitInitParams params = new LinkKitInitParams();
        /**
         * Atur parameter inisialisasi MQTT.
         */
        IoTMqttClientConfig config = new IoTMqttClientConfig();
        config.productKey = deviceInfoData.productKey;
        config.deviceName = deviceInfoData.deviceName;
        config.deviceSecret = deviceInfoData.deviceSecret;
        config.channelHost = pk + ".iot-as-mqtt." + deviceInfoData.region + ".aliyuncs.com:1883";
        /**
         * Menentukan apakah menerima pesan offline.
         * Ini sesuai dengan field cleanSession di MQTT.
         */
        // ...
    }
  7. Jalankan file HelloWorld.java untuk menghubungkan perangkat.

Verifikasi hasil

Setelah SDK sisi perangkat dijalankan, notifikasi perangkat online dikirim ke antrian Simple Message Queue (formerly MNS) melalui langganan sisi server. SDK Simple Message Queue (formerly MNS) kemudian mengonsumsi pesan dari antrian dan menghapusnya.

Contoh berikut menunjukkan output ketika SDK Simple Message Queue (formerly MNS) berhasil menerima dan menghapus pesan.

message handle: 519xxx...AgMA==
message body:
  {"payload":"eyJsYXN0xxx...IiwiY2xpZW5xxx...","topic":"/as/mqtt/status/xxx/device1","messageid":15xxx,"timestamp":1661158432}
message id: 51xxx...C49
message dequeue count:1
delete message successfully.