All Products
Search
Document Center

IoT Platform:Berkomunikasi melalui topik MQTT

Last Updated:Jun 11, 2026

Gunakan kit pengembangan perangkat lunak (SDK) Python Link untuk berlangganan topik, memublikasikan pesan, dan berhenti berlangganan dari topik di IoT Platform melalui MQTT. Topik ini mencakup alur lengkap permintaan dan konfirmasi untuk setiap operasi.

Format topik

Topik merupakan saluran komunikasi antara Perangkat dan IoT Platform. Perangkat menggunakan topik untuk mengirim dan menerima pesan.

Topik menggunakan garis miring maju (/) untuk menentukan hierarki dan memisahkan kategori. Tiga level pertama dari topik kustom telah ditetapkan sebelumnya:

Level

Nilai

Deskripsi

1

ProductKey

Mengidentifikasi Produk

2

${deviceName}

Wildcard untuk NamaPerangkat

3

user

Mengidentifikasi Kategori topik kustom

Untuk informasi selengkapnya, lihat Apa itu topik?.

Menerima pesan dari cloud

Panggil subscribe_topic() untuk berlangganan topik:

rc, mid = lk.subscribe_topic(topic, qos=1)         
Catatan

Dalam demo mqtt_sub_pub_on.py, panggil lk.to_full_topic("user/test") untuk menghasilkan string topik. API to_full_topic menggunakan ProductKey dan NamaPerangkat yang Anda tentukan dan mengembalikan string yang setara dengan /YourProductKey/YourDeviceName/user/test.

Hasil langganan dikembalikan dalam callback on_subscribe_topic:

lk.on_subscribe_topic = on_subscribe_topic
def on_subscribe_topic(mid, granted_qos, userdata):
    print("on_subscribe_topic mid:%d, granted_qos:%s" %
          (mid, str(','.join('%s' % it for it in granted_qos))))
    pass
            

granted_qos adalah tingkat Quality of Service (QoS) yang diberikan untuk topik yang dilanggani:

Nilai

Makna

0 atau 1

Subscription berhasil.

128

Subscription gagal.

Menerima dan memproses pesan dari cloud

Pesan masuk memicu callback on_topic_message():

lk.on_topic_message = on_topic_message
def on_topic_message(topic, payload, qos, userdata):
    print("on_topic_message:" + topic + " payload:" + str(payload) + " qos:" + str(qos))
    pass
            

Kirim pesan ke cloud

Penting

Pada versi Python Link SDK 1.0.0 hingga 1.2.11, jika Perangkat terputus dari IoT Platform, pemanggilan API publish akan melemparkan exception yang harus Anda tangani. Pada versi 1.2.12 dan seterusnya, API tersebut mengembalikan nilai error non-nol alih-alih melemparkan exception.

Kirim pesan

Panggil publish_topic() untuk memublikasikan pesan ke cloud:

rc, mid = lk.publish_topic(topic, payload)     

Notifikasi hasil publikasi

Callback on_publish_topic mengonfirmasi apakah cloud telah menerima pesan tersebut:

lk.on_publish_topic = on_publish_topic
def on_publish_topic(mid, userdata):
    print("on_publish_topic mid:%d" % mid)
            

Nilai rc sebesar 0 dari publish_topic berarti permintaan telah ditulis ke buffer pengiriman. Callback on_publish_topic yang berhasil kemudian mengonfirmasi bahwa publikasi berhasil.

Berhenti berlangganan dari topik

Penting

Pada versi Python Link SDK 1.0.0 hingga 1.2.11, jika Perangkat terputus dari IoT Platform, pemanggilan API unsubscribe akan melemparkan exception yang harus Anda tangani. Pada versi 1.2.12 dan seterusnya, API tersebut mengembalikan nilai error non-nol alih-alih melemparkan exception.

Panggil unsubscribe_topic() untuk berhenti berlangganan dari topik tertentu:

rc, mid = lk.unsubscribe_topic(topic)           

Hasil unsubscribe dikembalikan dalam callback on_unsubscribe_topic:

lk.on_unsubscribe_topic = on_unsubscribe_topic
def on_unsubscribe_topic(mid, userdata):
    print("on_unsubscribe_topic mid:%d" % mid)
    pass
            

Nilai rc sebesar 0 dari unsubscribe_topic berarti permintaan telah ditulis ke buffer cache. Nilai lainnya menunjukkan kegagalan. Callback on_unsubscribe_topic yang berhasil kemudian mengonfirmasi bahwa proses unsubscribe berhasil.