All Products
Search
Document Center

IoT Platform:Pesan komunikasi

Last Updated:Jun 21, 2026

Topik ini menjelaskan isu-isu umum terkait pengiriman pesan dan solusinya dalam komunikasi antara perangkat, IoT Platform, dan server.

Kategori

Pertanyaan

pesan uplink dan downlink

Langganan Topik

Penerusan Pesan

Penyimpanan Pesan

Mengkueri Pesan

Menangani pesan duplikat

Tingkat QoS 1 menjamin pengiriman minimal sekali (at-least-once delivery), sehingga perangkat mungkin menerima pesan duplikat. Duplikat tersebut akan memiliki ID pesan yang sama, yang dapat digunakan perangkat untuk deduplikasi. IoT Platform juga meminimalkan pengiriman pesan QoS level 1 yang duplikat.

Perangkat MQTT gagal menerima data

Jika perangkat gagal menerima data, periksa hal-hal berikut untuk mengidentifikasi penyebabnya:

  • Verifikasi bahwa perangkat telah melanggan topik yang benar. Perangkat MQTT hanya dapat menerima pesan dari topik yang telah dilanggannya.

  • Jika perangkat kadang-kadang melewatkan pesan, periksa apakah terdapat logika yang memakan waktu lama di callback aplikasi perangkat Anda. Jika ada, pindahkan logika tersebut ke thread terpisah agar tidak memblokir callback.

  • Pastikan aplikasi melanggan topik selama inisialisasi. Pesan yang dikirim sebelum langganan selesai mungkin hilang.

  • Untuk menerima pesan QoS 1 yang dikirim saat perangkat offline, atur parameter koneksi MQTT cleanSession ke false.

Penyimpanan pesan

Setelah pesan dipublikasikan ke suatu topik, IoT Platform segera meneruskannya ke perangkat yang melanggan topik tersebut.

  • Pesan QoS 0: IoT Platform tidak menyimpannya.

  • Pesan QoS 1: IoT Platform menyimpannya selama 7 hari.

Periode retensi data perangkat

  • Pesan QoS 0: IoT Platform tidak menyimpannya.

  • Pesan QoS 1: IoT Platform menyimpannya selama 7 hari.

Anda dapat melihat log komunikasi selama 7 hari terakhir di Konsol IoT Platform pada halaman Monitoring and Operations > Log Service untuk instans Anda. Untuk informasi lebih lanjut, lihat Log Service.

Pengiriman pesan lambat atau timeout

Koneksi jaringan yang tidak stabil merupakan penyebab umum masalah ini.

Untuk menguji konektivitas jaringan perangkat:

  1. Masuk ke Konsol IoT Platform.

  2. Pada halaman Overview, temukan instans dan klik ID atau alias-nya.

  3. Di panel navigasi kiri, pilih Devices > Devices.

  4. Pada halaman Devices, cari perangkat berdasarkan DeviceName atau alias-nya.

  5. Pada kolom Actions untuk perangkat tersebut, klik View.

  6. Pada tab Device Information, klik Test di sebelah Real-time Delay.

  7. Klik OK untuk memulai pengujian.

Ulangi langkah 6 dan 7 untuk mengumpulkan lebih banyak data. Latensi tinggi yang konsisten menunjukkan koneksi jaringan yang tidak stabil.

Dukungan untuk will message dan retained message

Ya. IoT Platform mendukung will message dan retained message dengan MQTT 5.0. Untuk informasi lebih lanjut, lihat Fitur MQTT 5.0 yang didukung oleh IoT Platform.

Pengambilan pesan sisi server

Server dapat mengambil pesan perangkat dengan dua cara.

  • Langganan sisi server: Gunakan langganan sisi server IoT Platform untuk melanggan satu atau beberapa jenis pesan. Berdasarkan pengaturan langganan Anda, IoT Platform meneruskan pesan jenis tertentu dari semua perangkat dalam suatu produk ke server Anda. IoT Platform mendukung jenis langganan sisi server berikut:

    • Langganan sisi server AMQP: Gunakan SDK AMQP untuk menerima pesan perangkat yang diteruskan oleh IoT Platform.

    • Langganan sisi server MNS: Gunakan SDK MNS untuk menerima pesan perangkat yang diteruskan oleh IoT Platform ke antrian Simple Message Queue (formerly MNS) (SMQ).

  • Penerusan data: Gunakan penerusan data untuk mengarahkan data dari perangkat tertentu ke antrian Simple Message Queue (formerly MNS) (SMQ) atau antrian Message Queue for Apache RocketMQ berdasarkan aturan penerusan data. Server Anda mengonsumsi pesan tersebut menggunakan SDK MNS atau SDK Message Queue for Apache RocketMQ. Untuk informasi lebih lanjut, lihat Ikhtisar penerusan data.

Pesan konsol tidak diterima oleh antrian SMQ

IoT Platform tidak meneruskan pesan yang dikirim dari konsol atau melalui API cloud ke antrian Simple Message Queue (formerly MNS) (SMQ) karena menganggapnya sebagai pesan sisi server. Hanya pesan yang berasal dari perangkat—seperti pesan upstream perangkat, notifikasi perubahan status perangkat, dan perubahan tag perangkat—yang diarahkan ke antrian SMQ.

Cara mengidentifikasi topik sumber

Pesan dalam Simple Message Queue (formerly MNS) (SMQ) memiliki format berikut:

{
	"messageid": "12345",
	"messagetype": "status/upload",
	"topic": "null/topic",
	"payload": {},
	"timestamp": 1469564576
}

Field topic mengidentifikasi topik sumber.

Kirim perintah ke perangkat

Anda dapat memanggil API IoT Platform berikut untuk mengirim pesan ke perangkat:

API

Deskripsi

Pub

Mengirim pesan ke perangkat tertentu menggunakan topik kustom.

BatchPub

Mengirim pesan ke beberapa perangkat dari produk tertentu menggunakan topik kustom.

PubBroadcast

Menyiarkan pesan ke perangkat online dari produk tertentu.

Anda dapat menargetkan semua perangkat online atau hanya yang melanggan topik tertentu.

RRpc

Mengirim pesan permintaan ke perangkat tertentu dan mengembalikan respons secara sinkron.

SetDeviceProperty

Mengatur nilai properti Thing Specification Language (TSL) untuk perangkat tertentu.

SetDevicesProperty

Mengatur nilai properti Thing Specification Language (TSL) untuk beberapa perangkat dari produk tertentu.

InvokeThingService

Memanggil layanan Thing Specification Language (TSL) tertentu pada satu perangkat.

InvokeThingsService

Memanggil layanan Thing Specification Language (TSL) tertentu pada beberapa perangkat dari produk tertentu.

Komunikasi antar-perangkat

Ya, perangkat dalam instans yang sama dapat saling berkomunikasi.

Gunakan fitur penerusan data atau routing pesan untuk meneruskan pesan dari topik satu perangkat ke perangkat lain, sehingga memungkinkan komunikasi di antara mereka.

Kegagalan pesan QoS 2

IoT Platform mendukung QoS 0 dan QoS 1, tetapi tidak mendukung QoS 2.

Untuk detailnya, lihat Spesifikasi protokol MQTT.

Sinkronisasi koneksi dan status perangkat

Langganan pesan pembaruan status perangkat menggunakan langganan sisi server untuk menjaga informasi koneksi dan status perangkat tetap sinkron.

Untuk informasi lebih lanjut, lihat Langganan sisi server.

Visualisasi data perangkat

Publikasikan pesan heksadesimal melalui API

Di Konsol IoT Platform, Anda tidak dapat mengirim pesan heksadesimal menggunakan debug online, simulator perangkat, atau tab daftar topik pada halaman detail perangkat.

Anda dapat menggunakan API Pub, BatchPub, atau PubBroadcast untuk mengirim pesan heksadesimal. Parameter MessageContent harus berupa pesan asli yang telah diencode Base64, yang dapat berupa string atau array byte heksadesimal.

Setelah server bisnis Anda mengirim pesan melalui API, IoT Platform secara otomatis melakukan decode Base64 terhadap pesan tersebut sebelum meneruskannya ke perangkat.

Ekspor data perangkat

IoT Platform menyimpan pesan QoS 0 hingga 1 hari dan pesan QoS 1 hingga 7 hari.

Anda dapat menggunakan fitur penyimpanan data Layanan Data untuk menyimpan data perangkat offline dan data deret waktu. Data offline mencakup tabel sistem platform, tabel deret waktu, tabel snapshot, dan tabel penyimpanan kustom. Data deret waktu perangkat mencakup data Thing Model (properti, layanan, dan event) yang dilaporkan oleh perangkat serta data topik kustom yang dikonfigurasi menggunakan aturan penyimpanan data deret waktu. Untuk informasi lebih lanjut, lihat Konfigurasi Penyimpanan Data.

  • Untuk mengambil data perangkat, gunakan API untuk mengkueri data dan mendorongnya ke server Anda sendiri.

  • Jika Anda perlu menyimpan data perangkat untuk periode yang lebih lama, mengurangi biaya penyimpanan, atau melakukan pemrosesan data lebih lanjut (seperti analisis SQL, dan API Data), Anda dapat backup sumber data perangkat. Setelah Anda mengaktifkan backup data untuk suatu produk, IoT Platform secara otomatis membuat time-series/snapshot tables yang sesuai untuk produk tersebut di offline storage. Tabel-tabel ini mencakup product property time-series table, product property snapshot table, dan product event table.

Langganan AMQP untuk data heksadesimal

Ya.

Ikuti langkah-langkah berikut untuk meneruskan data heksadesimal:

  1. Konfigurasi perangkat untuk mengunggah data dalam format heksadesimal menggunakan topik kustom. Untuk informasi lebih lanjut, lihat Gunakan topik kustom untuk berkomunikasi.

  2. Konfigurasi penerusan pesan untuk melanggan pesan yang dilaporkan perangkat pada topik kustom.

  3. Gunakan SDK client AMQP untuk mengonsumsi pesan kustom dari perangkat.

    Alibaba Cloud IoT Platform menyediakan contoh kode untuk SDK AMQP dalam bahasa berikut:

    SDK client AMQP untuk Python 3 dan PHP menggunakan protokol STOMP untuk berkomunikasi dengan Alibaba Cloud IoT Platform. Saat menggunakan SDK ini, Anda harus mengencode Base64 muatan sebelum mendorongnya. Jika tidak, muatan mungkin terpotong.

    Untuk petunjuk detail tentang penggunaan SDK, lihat Koneksi client AMQP.

Pemetaan kelompok konsumen dan antrian pesan AMQP

Ya.

Hingga 128 client AMQP dapat mengonsumsi pesan dari satu antrian pesan AMQP.

Pemetaan perangkat ke satu antrian AMQP

Ya.

Gunakan Rule Engine untuk mengonfigurasi penerusan data ke kelompok konsumen yang melanggan server AMQP. Dalam parser penerusan pesan, gunakan fungsi seperti topic(number) atau deviceName() dalam pernyataan if untuk memilih perangkat dan meneruskan pesannya ke antrian pesan AMQP.

Berikut adalah contoh skrip parser:

// Dapatkan muatan pesan perangkat dan uraikan sebagai JSON.
var data = payload("json");
// Dapatkan nama perangkat.
var dn = deviceName();
// Jika pesan berasal dari 'device01', teruskan datanya.
if (dn == 'device01') { 
    writeAmqp(1000, data, "Debug");  
}

Untuk mempelajari lebih lanjut tentang skrip parser, lihat Sintaksis skrip. Untuk petunjuk mengonfigurasi parser penerusan pesan, lihat Teruskan data ke kelompok konsumen yang melanggan server AMQP.

Beritahu aplikasi tentang status online perangkat

Fitur langganan sisi server IoT Platform memungkinkan Anda menerima pesan perubahan status perangkat. Untuk menggunakan fitur ini, deploy dan jalankan client AMQP di server yang menjalankan aplikasi atau mini program Anda.

Implementasinya sebagai berikut:

  1. Konfigurasi langganan sisi server AMQP: Di Konsol IoT Platform, konfigurasikan kelompok konsumen langganan sisi server untuk mendorong pesan perubahan status perangkat.

  2. Integrasi client AMQP: Di server yang menjalankan aplikasi atau mini program Anda, deploy dan jalankan client AMQP untuk terhubung ke IoT Platform.

    Untuk informasi tentang format data pesan perubahan status perangkat, lihat Status Online/Offline Perangkat. Setelah client AMQP menerima pesan, Anda harus mengimplementasikan logika untuk menampilkannya di aplikasi atau mini program Anda.

  3. Koneksi Perangkat: Setelah perangkat terhubung ke IoT Platform, platform meneruskan informasi statusnya ke client AMQP untuk dikonsumsi.

Pesan tidak diterima setelah pemanggilan API Pub

Perangkat tidak melanggan topik yang ditentukan dalam pemanggilan API Pub.

Perangkat harus melanggan topik untuk menerima pesan darinya. Untuk melanggan perangkat, panggil API SubscribeTopic.

Melanggan dan melihat topik

  • Perangkat harus secara aktif melanggan topik. Setelah langganan berhasil, topik akan muncul di Daftar Topik pada halaman detail Perangkat untuk instans Anda di Konsol IoT Platform.

  • Jika perangkat belum melanggan topik apa pun, tab Daftar Topik pada halaman detailnya akan kosong.

Berlangganan Topik

Perangkat dapat melanggan topik dengan cara berikut:

  • Jika Anda menggunakan C Link SDK (versi 3.1, 3.2, dan 4.x) atau Python Link SDK yang disediakan oleh IoT Platform, perangkat Anda secara otomatis melanggan topik komunikasi dasar dan topik Thing Model yang memiliki izin subscribe.

    Setelah Anda membuat topik kustom dengan izin subscribe, Anda dapat menggunakan API berikut dalam SDK untuk melanggan topik kustom tersebut:

    Jika Anda mengaktifkan proxy subscription saat membuat topik kustom, IoT Platform secara otomatis melanggan perangkat ke topik tersebut saat perangkat membentuk koneksi.

    Untuk menambahkan topik kustom, lihat Gunakan topik kustom untuk berkomunikasi.

  • Jalankan simulator perangkat: Saat Anda menggunakan fitur simulator perangkat yang disediakan oleh IoT Platform, perangkat secara otomatis melanggan topik komunikasi dasar dan topik Thing Model.

    Setelah Anda membuat topik kustom dengan izin subscribe, Anda dapat menggunakan fitur debugging perintah upstream untuk melanggannya.

  • Gunakan MQTT.fx untuk terhubung ke IoT Platform: Setelah perangkat online, gunakan fitur Subscribe untuk melanggan topik perangkat.

  • SubscribeTopic: Setelah perangkat terhubung ke IoT Platform, panggil API ini untuk melanggan topik perangkat.

    Setelah Anda membuat topik kustom dengan izin subscribe, Anda dapat memanggil API SubscribeTopic untuk melanggannya.

Lihat topik yang dilanggan

Pilih salah satu metode berikut:

Mengapa langganan AMQP tidak menerima pesan RRPC?

Komunikasi RRPC adalah proses sinkron: sisi server mengirim permintaan ke perangkat dan menunggu respons. IoT Platform tidak mendukung langganan sisi server AMQP untuk pesan komunikasi RRPC.

Untuk informasi lebih lanjut tentang komunikasi RRPC, lihat Komunikasi sinkron MQTT (RRPC).

Format JSON standar untuk topik kustom

IoT Platform tidak menerapkan format data tertentu untuk komunikasi melalui topik kustom. Anda yang menentukan formatnya.

Untuk informasi tentang topik dan format Alink JSON yang diperlukan untuk komunikasi antara perangkat dan IoT Platform, lihat dokumentasi Protokol Alink.

Jika Anda mengatur data format ke passthrough/custom saat membuat Produk, Anda harus mengonfigurasi parsing pesan. Konfigurasi ini mengurai muatan berformat kustom, yang dikirim perangkat melalui topik kustom, ke format JSON. Untuk informasi lebih lanjut, lihat Parsing pesan topik kustom.

Error komunikasi thing model: "5092 - property not found"

Error ini berarti properti dalam pesan upstream atau downstream tidak didefinisikan dalam thing model.

Penyebab yang mungkin:

  • Properti tidak didefinisikan dalam thing model. Buka Konsol IoT Platform untuk meninjau definisi properti dan tambahkan properti yang diperlukan. Lihat Tambahkan thing model.

  • Properti didefinisikan dalam modul kustom. Untuk komunikasi upstream dan downstream, Anda harus menambahkan awalan identifier modul kustom pada properti dengan format berikut: {tsl.functionBlockId}:{tsl.properties.identifier}.

Untuk detail tentang field thing model, lihat Referensi field TSL untuk thing model. Untuk informasi lebih lanjut tentang kode kesalahan terkait pesan, lihat Kode kesalahan dalam log runtime cloud.

Pengaturan properti: perangkat mengembalikan error 6335

Thing model menentukan respons kosong untuk metode pengaturan properti. Oleh karena itu, ketika IoT Platform mengirim perintah pengaturan properti ke perangkat, field data dalam pesan respons perangkat harus kosong. Jika data tidak kosong, terjadi error.

Untuk informasi lebih lanjut tentang kode kesalahan, lihat kode kesalahan dalam log run sisi cloud.

Pencocokan topik untuk perangkat

Ya. Topik perangkat fisik harus sesuai dengan topik perangkat yang sesuai dalam produknya.

Langganan topik lintas perangkat

Tidak. Perangkat hanya dapat melanggan topik miliknya sendiri.

Menerima pesan dari semua perangkat

Anda dapat menggunakan langganan sisi server AMQP agar server Anda menerima pesan perangkat. Untuk informasi lebih lanjut, lihat Gunakan langganan sisi server AMQP.

Kegagalan langganan dengan sertifikat perangkat bersama

  1. Hanya satu perangkat yang dapat menggunakan sertifikat perangkat pada satu waktu. Perangkat hardware dan client MQTT harus menggunakan sertifikat perangkat yang berbeda untuk terhubung ke IoT Platform.

  2. Perangkat hanya dapat melanggan topik miliknya sendiri dan tidak dapat memublikasikan pesan ke topik perangkat lain.

  3. Anda dapat menggunakan Penerusan Data atau routing pesan berbasis topik untuk meneruskan pesan dari topik satu perangkat ke perangkat lain, yang memungkinkan komunikasi di antara perangkat tersebut.

    Sebagai contoh:

Izin operasi untuk topik

  • IoT Platform telah menentukan izin operasi untuk topik dasar dan topik thing model, dan Anda tidak dapat mengubahnya. Untuk melihat izin ini, ikuti langkah-langkah berikut:

    1. Masuk ke Konsol IoT Platform.

    2. Di pojok kiri atas konsol, pilih wilayah tempat instans Anda berada.

    3. Pada tab Instance Overview, di bawah All Environments, temukan instans Anda dan klik kartunya.

    4. Di panel navigasi kiri, pilih Device management > Product.

    5. Pada halaman Product, temukan produk Anda dan klik View di kolom Actions.

    6. Pada halaman Product details, klik tab Topic category list. Anda kemudian dapat melihat daftar topik pada tab Basic topic dan Thing model topic.

      Kolom Operation permission dalam daftar topik menunjukkan izin Publish dan Subscribe untuk setiap topik.

      Tabel pada tab Thing model topic berisi kolom Function, Topic category, Operation permission, dan Description. Tabel ini mencantumkan path topik (seperti /sys/${productKey}/${deviceName}/thing/event/property/post) dan izin publish atau subscribe yang sesuai untuk fungsi termasuk report property, set property, report event, dan invoke service.

  • Gunakan API QueryProductTopic untuk mengkueri detail kategori Topik kustom produk.

Ekspor log run sisi cloud

Tidak, Anda tidak dapat melakukannya.

  • Anda dapat mengaktifkan Log Service lalu mengaktifkan transfer log run sisi cloud di Konsol IoT Platform. Ini memungkinkan Anda mengekspor log ke penyimpanan log di Log Service untuk penyimpanan jangka panjang. Untuk petunjuknya, lihat Transfer log run sisi cloud.

    Setelah Anda mengaktifkan fitur transfer log, Log Service secara otomatis membuat sumber daya berikut untuk menyimpan log Anda. Anda kemudian dapat melihat log run sisi cloud yang ditransfer di Log Service.

    • Project: iot-log-${uid}-${regionId}. Dalam format ini, ${uid} adalah ID akun Alibaba Cloud Anda, dan ${regionId} adalah ID wilayah layanan IoT Platform Anda.

    • Logstore: iot-logs.

IoT Platform: Kirim pesan satu perangkat ke beberapa server

Untuk langganan sisi server AMQP, satu kelompok konsumen dipetakan ke satu antrian pesan AMQP. Jika Anda menjalankan beberapa konsumen dan mengikatnya ke kelompok konsumen yang sama, setiap pesan perangkat dikirim hanya ke salah satunya secara acak. Untuk mengirim salinan setiap pesan ke setiap konsumen, ikat setiap konsumen ke kelompok konsumen yang berbeda.

Untuk informasi lebih lanjut, lihat topik berikut:

Siarkan pesan ke beberapa perangkat

Antarmuka PubBroadcast IoT Platform memungkinkan Anda mempublikasikan pesan siaran ke beberapa perangkat online dalam produk tertentu. Anda dapat menargetkan semua perangkat online atau hanya yang melanggan topik tertentu.

Error langganan sisi server IoT Platform 9203

Error ini terjadi karena client AMQP atau client Simple Message Queue (formerly MNS) (SMQ) untuk langganan sisi server sedang offline. Untuk menghubungkan client AMQP, lihat Hubungkan client AMQP. Untuk menghubungkan client MNS, lihat Kembangkan client konsumen MNS.

Frekuensi langganan perangkat

Meskipun perangkat hanya perlu melanggan sekali, kami merekomendasikan untuk melanggan setiap kali dinyalakan. Ini memastikan callback yang sesuai dalam kode Anda dipicu.

Mengirim pesan sebelum langganan

Tidak. Perangkat hanya menerima pesan dari topik komunikasi setelah melanggannya. Untuk detailnya, lihat Gunakan topik komunikasi.

Hubungkan client dan langganan perubahan properti

  1. Konfigurasi langganan sisi server AMQP: Di IoT Platform, atur Message Type ke Device-reported Messages.

  2. Gunakan SDK client AMQP untuk terhubung ke IoT Platform dan menerima Device-reported Messages yang dilanggan yang berisi data properti perangkat.

    Alibaba Cloud IoT Platform menyediakan contoh kode SDK client AMQP dalam bahasa berikut:

    SDK client AMQP untuk Python 3 dan PHP menggunakan protokol STOMP untuk berkomunikasi dengan IoT Platform. Saat menggunakan SDK ini, Anda harus mengencode Base64 konten pesan sebelum mendorongnya. Jika tidak, konten pesan mungkin terpotong.

    Untuk petunjuk detail tentang penggunaan SDK, lihat Petunjuk koneksi client AMQP.

Otorisasi lintas akun

  • Gunakan device distribution untuk mendistribusikan perangkat dari instans sumber ke instans target di akun lain. Akun target kemudian dapat melihat data dari perangkat tersebut. Untuk batasan penggunaan dan petunjuk detail, lihat distribusi perangkat.