All Products
Search
Document Center

IoT Platform:Komunikasi broadcast

Last Updated:Jun 21, 2026

IoT Platform mendukung komunikasi broadcast, yang memungkinkan Anda mengirim pesan ke semua perangkat dari suatu produk tertentu atau ke semua perangkat yang berlangganan topik tertentu. Pesan broadcast dari server bisnis Anda hanya diterima oleh perangkat yang sedang online. Topik ini memberikan contoh cara melakukan broadcast pesan ke semua perangkat online.

Informasi latar belakang

  • Broadcast pesan ke semua perangkat online dari suatu produk

    Server bisnis Anda memanggil operasi API PubBroadcast dan meneruskan ProductKey dari produk target serta MessageContent. Semua perangkat online dari produk tersebut menerima MessageContent pada topik broadcast /sys/${productKey}/${deviceName}/broadcast/request/${MessageId}.

    MessageId dalam topik broadcast adalah ID yang dihasilkan oleh IoT Platform. Setelah pesan berhasil dikirim, IoT Platform mengembalikan ID ini ke server bisnis Anda sebagai bagian dari respons pemanggilan PubBroadcast.

    Sebagai contoh, produsen dengan beberapa smart lock yang terhubung ke IoT Platform dapat menggunakan server bisnis untuk mengirim satu perintah ke semua kunci online guna membatalkan password tertentu.

    广播通信
  • Broadcast pesan ke semua perangkat yang berlangganan topik tertentu

    Perangkat berlangganan topik broadcast yang sama. Server bisnis Anda memanggil operasi API PubBroadcast, meneruskan ProductKey, MessageContent, dan nama lengkap topik broadcast tersebut. Nama topik harus dalam format /broadcast/${productKey}/custom-field. Semua perangkat online yang berlangganan topik ini menerima MessageContent.

    Penting
    • Topik broadcast didefinisikan dalam kode sisi perangkat selama pengembangan. Anda tidak perlu membuatnya di Konsol IoT Platform.
    • Maksimal 1.000 perangkat dapat berlangganan satu topik broadcast. Jika Anda memiliki lebih dari 1.000 perangkat, bagi perangkat tersebut ke dalam beberapa kelompok. Misalnya, untuk melakukan broadcast ke 5.000 perangkat, Anda dapat membaginya menjadi lima kelompok masing-masing 1.000 perangkat. Anda kemudian harus memanggil operasi PubBroadcast sebanyak lima kali, dengan menyetel custom field ke group1, group2, group3, group4, dan group5 secara berturut-turut. Setiap kelompok perangkat harus berlangganan topik yang sesuai.

    Untuk informasi lebih lanjut tentang operasi API broadcast, lihat PubBroadcast.

Batasan

  • Pesan broadcast hanya dikirim ke perangkat online dalam suatu produk.
  • Saat melakukan broadcast pesan ke perangkat online berdasarkan langganan topik, frekuensi pemanggilan maksimum untuk API broadcast adalah sekali per detik.
  • Saat melakukan broadcast pesan ke semua perangkat online dari suatu produk, perangkat tidak perlu berlangganan topik broadcast. Frekuensi pemanggilan maksimum untuk API broadcast adalah sekali per menit.
  • Ukuran maksimum isi pesan broadcast adalah 64 KB.
Penting Pesan broadcast tidak tunduk pada batas Transaksi Per Detik (TPS) penerusan data dari instans Anda. Misalnya, jika instans Anda memiliki batas TPS penerusan data sebesar 100 dan Anda memiliki 500 perangkat online, satu panggilan broadcast akan mengirimkan pesan ke semua 500 perangkat, bukan hanya 100.

Siapkan lingkungan pengembangan

Contoh ini menggunakan SDK Java baik untuk perangkat maupun server. Anda harus menyiapkan lingkungan pengembangan Java. Unduh dan instal Java Development Kit (JDK) dari website resmi Java.

Tambahkan dependensi Maven

Buat proyek dan tambahkan dependensi Maven berikut ke file pom.xml.

Catatan Versi IoT Java SDK dalam kode berikut hanya sebagai referensi. Untuk informasi dependensi terbaru, kunjungi halaman OpenAPI Explorer.
<dependencies>
  <dependency>
     <groupId>com.aliyun.alink.linksdk</groupId>
     <artifactId>iot-linkkit-java</artifactId>
     <version>1.2.0.1</version>
     <scope>compile</scope>
  </dependency>
  <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-core</artifactId>
      <version>4.5.6</version>
  </dependency>
  <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-iot</artifactId>
      <version>7.41.0</version>
  </dependency>
  <dependency>
    <groupId>com.aliyun.openservices</groupId>
    <artifactId>iot-client-message</artifactId>
    <version>1.1.2</version>
  </dependency>
</dependencies>

Buat produk dan perangkat

  1. Masuk ke Konsol IoT Platform.
  2. Pada halaman Overview, temukan instans yang ingin Anda kelola dan klik ID instans atau nama instans tersebut.

  3. Di panel navigasi sebelah kiri, pilih Device Management > Products.
  4. Klik Create Product untuk membuat produk Smart Lock. Untuk informasi lebih lanjut, lihat Create a product.
  5. Di panel navigasi sebelah kiri, pilih Device Management > Devices, lalu buat tiga perangkat untuk produk Smart Lock. Untuk informasi lebih lanjut, lihat Create multiple devices at a time.

Konfigurasikan SDK perangkat

  • Hubungkan perangkat Anda ke IoT Platform.
    • Konfigurasikan kredensial perangkat.
      final String productKey = "<yourProductKey>";
      final String deviceName = "<yourDeviceName>";
      final String deviceSecret = "<yourDeviceSecret>";
      final String region = "<yourRegionID>";

      productKey, deviceName, dan deviceSecret adalah kredensial perangkat Anda. Untuk mendapatkannya, buka Konsol IoT Platform, arahkan ke instans Anda, lalu pilih Device Management > Devices. Temukan perangkat tersebut dan klik View untuk membuka halaman Device Details.

      Parameter region menentukan wilayah perangkat. Untuk informasi cara menentukan region, lihat Regions and zones.

    • Setel parameter inisialisasi, termasuk pengaturan MQTT, informasi perangkat, dan status awal perangkat.
      LinkKitInitParams params = new LinkKitInitParams();
      // LinkKit menggunakan MQTT sebagai protokol dasarnya. Konfigurasikan pengaturan MQTT.
      IoTMqttClientConfig config = new IoTMqttClientConfig();
      config.productKey = productKey;
      config.deviceName = deviceName;
      config.deviceSecret = deviceSecret;
      config.channelHost = productKey + ".iot-as-mqtt." + region + ".aliyuncs.com:1883";
      // Tentukan informasi perangkat.
      DeviceInfo deviceInfo = new DeviceInfo();
      deviceInfo.productKey = productKey;
      deviceInfo.deviceName = deviceName;
      deviceInfo.deviceSecret = deviceSecret;
      // Tentukan status awal perangkat.
      Map<String, ValueWrapper> propertyValues = new HashMap<String, ValueWrapper>();
      params.mqttClientConfig = config;
      params.deviceInfo = deviceInfo;
      params.propertyValues = propertyValues;

      channelHost adalah titik akhir MQTT. Untuk mendapatkan titik akhir instans publik dan Edisi Perusahaan, lihat View and configure instance endpoints.

    • Inisialisasi koneksi.
      // Bangun koneksi dan setel pendengar untuk hasil koneksi.
      LinkKit.getInstance().init(params, new ILinkKitConnectListener() {
           @Override
           public void onError(AError aError) {
               System.out.println("Init error:" + aError);
           }
           // Callback yang dipanggil setelah inisialisasi selesai.
           @Override
           public void onInitDone(InitResult initResult) {
               System.out.println("Init done:" + initResult);
           }
       });
  • Dalam fungsi callback onInitDone, gunakan awalan topik untuk mengidentifikasi topik broadcast. Awalan topik broadcast adalah /sys/${productKey}/${deviceName}/broadcast/request/.
    public void onInitDone(InitResult initResult) {
                    // Setel pendengar untuk mendengarkan pesan downstream.
                    IConnectNotifyListener notifyListener = new IConnectNotifyListener() {
                        // Definisikan callback yang dipanggil untuk memproses pesan downstream.
                        @Override
                        public void onNotify(String connectId, String topic, AMessage aMessage) {
                            // Filter pesan broadcast.
                            if(topic.startsWith(broadcastTopic)){
                                System.out.println(
                                        "received broadcast message from topic=" + topic + ",\npayload=" + new String((byte[])aMessage.getData()));
                            }
                        }
                        @Override
                        public boolean shouldHandle(String s, String s1) {
                            return false;
                        }
                        @Override
                        public void onConnectStateChange(String s, ConnectState connectState) {
                        }
                    };
                    LinkKit.getInstance().registerOnNotifyListener(notifyListener);
                }

Konfigurasikan SDK sisi server

Konfigurasikan SDK Java sisi server untuk mengirim pesan broadcast.

  • Konfigurasikan informasi autentikasi.
     String regionId = "<yourRegionID>";
     String accessKey = "<yourAccessKey>";
     String accessSecret = "<yourAccessSecret>";
     final String productKey = "<yourProductKey>";
  • Konfigurasikan server untuk memanggil operasi API PubBroadcast guna melakukan broadcast pesan.
    // Setel parameter client.
    DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKey, accessSecret);
    IAcsClient client = new DefaultAcsClient(profile);
    PubBroadcastRequest request = new PubBroadcastRequest();
    // Setel ProductKey untuk pesan broadcast.
    request.setProductKey(productKey);
    // Setel konten pesan. Konten harus diencode Base64 untuk mencegah karakter acak.
    request.setMessageContent(Base64.encode("{\"pwd\":\"2892nd6Y\"}"));
    // Setel ID instans.
    request.setIotInstanceId("iot-cn-***");
  • Kirim pesan broadcast dari server.
    try {
        PubBroadcastResponse response = client.getAcsResponse(request);
    System.out.println("broadcast pub success: broadcastId =" + response.getMessageId());
    } catch (Exception e) {
        System.out.println(e);
    }

Verifikasi hasil

Jalankan kode SDK perangkat pada setiap perangkat untuk menghubungkannya. Kemudian, jalankan kode SDK sisi server untuk memanggil operasi API PubBroadcast guna melakukan broadcast pesan ke perangkat-perangkat tersebut.

Konten pesan yang dibroadcast dari SDK sisi server adalah "{\"pwd\":\"2892nd6Y\"}".

Log lokal pada setiap perangkat menampilkan pesan broadcast yang diterima: {\"pwd\":\"2892nd6Y\"}.

Smart Lock 1:

2020-03-05  03:17:37.091 – null[MqttDefaulCallback.java] – messageArrived(74):MqttDefaulCallback:messageArrived,topi
  [/sys/a1nTNJt9p39/MjxxxDR/broadcast/request/123546464900384256], msg = [{"pwd":"2892nd6Y"}],
2020-03-05  03:17:37.091 – null[PersistentEventDispatcher.java] – broadcastMessage(150):com.aliyun.alink.linksdk.cha
  what=3
  received broadcast message from topic=/sys/a1nTNJt9p39/MjxxxDR/broadcast/request/123546464900384256,
payload={"pwd":"2892nd6Y"}

Smart Lock 2:

2020-03-05 03:17:37.111 - null[MqttDefaulCallback.java] - messageArrived(74):MqttDefaulCallback:messageArrived,topic
  [/sys/a1nTNJt9p39/W96JAyE7UBpxHkiFy2CG/broadcast/request/1235464464900384256] , msg = [{"pwd":"2892nd6Y"}],
2020-03-05 03:17:37.111 - null[PersistentEventDispatcher.java] - broadcastMessage(150):com.aliyun.alink.linksdk.chan
  what=3
  received broadcast message from topic=/sys/a1nTNJt9p39/W9xxx2CG/broadcast/request/1235464464900384256,
  payload={"pwd":"2892nd6Y"}

Smart Lock 3:

2020-03-05 03:17:37.167 - null[MqttDefaulCallback.java] - messageArrived(74):MqttDefaultCallback:messageArrived,top
  [/sys/a1nTNJt9p39/mBGagyPszmfRbKVzyqvZ/broadcast/request/1235464464900384256] , msg = [{"pwd":"2892nd6Y"}],
2020-03-05 03:17:37.167 - null[PersistentEventDispatcher.java] - broadcastMessage(150):com.aliyun.alink.linksdk.ch
  what=3
  received broadcast message from topic=/sys/a1nTNJt9p39/mlxxxxxxxxxxxvZ/broadcast/request/1235464464900384256,
payload={"pwd":"2892nd6Y"}

Lampiran: Demo

Unduh kode contoh lengkap, yang mencakup contoh untuk SDK sisi server dan sisi perangkat.