Topik ini menjelaskan opsi langganan dalam Message Queuing Telemetry Transport (MQTT) 5.0 yang didukung oleh IoT Platform.
Deskripsi fitur
Anda dapat mengonfigurasi opsi langganan untuk menentukan tindakan IoT Platform. MQTT 5.0 mendukung opsi langganan berikut:
Item | Deskripsi |
Opsi ini menentukan tingkat Quality of Service (QoS) untuk pesan MQTT. Tingkat QoS di MQTT 5.0 sama dengan yang ada di MQTT 3.1. | |
Opsi ini menentukan apakah perangkat menerima pesan yang diterbitkan oleh dirinya sendiri. | |
Opsi ini menentukan apakah IoT Platform mempertahankan Retain flag dalam pesan ketika IoT Platform menerbitkan pesan ke perangkat. | |
Opsi ini menentukan apakah server mengirimkan pesan yang disimpan ke perangkat saat langganan dibuat. |
Jika Anda menggunakan Link SDK for C untuk menghubungkan perangkat ke IoT Platform, semua opsi langganan diatur ke 0 secara default.
Kami merekomendasikan Anda mengatur opsi No Local ke 1 untuk mengurangi pengiriman pesan yang tidak perlu.
Tingkat QoS
Tabel berikut menjelaskan tiga tingkat QoS.
Tingkat | Deskripsi | Skenario |
QoS 0 | Pesan dapat diterima maksimal satu kali. Pengiriman pesan tidak andal dan pesan mungkin hilang. | Tingkat QoS ini digunakan untuk mentransmisikan data sensor. |
QoS 1 | Pesan dapat diterima minimal satu kali. Pengiriman pesan andal. | Tingkat QoS ini digunakan untuk mentransmisikan perintah kontrol jarak jauh. |
QoS 2 | Pesan hanya dapat diterima satu kali. null IoT Platform tidak mendukung tingkat QoS ini. | Tidak tersedia |
No Local
Dalam MQTT 3.1.1, jika perangkat berlangganan topik tempat perangkat tersebut menerbitkan pesan, perangkat dapat menerima pesan yang diterbitkan oleh dirinya sendiri. Namun, jika menggunakan MQTT 5.0, Anda dapat mengatur opsi No Local ke 1. Dengan cara ini, ketika perangkat berlangganan topik tempat perangkat tersebut menerbitkan pesan, perangkat tidak menerima pesan yang diterbitkan oleh dirinya sendiri.
Nilai valid:
1: Perangkat tidak menerima pesan yang diterbitkan oleh dirinya sendiri.
0: Perangkat menerima pesan yang diterbitkan oleh dirinya sendiri.
Saat perangkat berlangganan topik yang namanya berisi karakter wildcard, Anda dapat mengatur opsi ini ke 1. Ini menyederhanakan langganan dan mengurangi pesan yang tidak perlu. Gambar berikut menunjukkan proses pesan saat opsi No Local diatur ke 1.

Retain As Publish
Saat IoT Platform meneruskan pesan ke perangkat, Anda dapat menentukan apakah akan mempertahankan Retain flag dalam pesan.
Saat Anda mengonfigurasi perangkat untuk berlangganan topik, Anda dapat mengatur opsi Retain As Publish ke salah satu nilai berikut:
1: IoT Platform mempertahankan Retain flag dalam pesan normal yang diteruskan oleh IoT Platform atau dalam pesan yang disimpan yang diterbitkan oleh IoT Platform sebagai broker.
0: Jika IoT Platform meneruskan pesan normal, IoT Platform tidak mempertahankan Retain flag dalam pesan. Jika IoT Platform bertindak sebagai broker untuk menerbitkan pesan yang disimpan, IoT Platform mempertahankan Retain flag dalam pesan.
Tabel berikut menunjukkan bagaimana opsi Retain As Publish memengaruhi Retain flag dalam pesan yang diterima perangkat dari IoT Platform. Saat pesan diterbitkan ke IoT Platform, status Retain flag dalam pesan dapat berupa salah satu nilai berikut:
True: Pesan yang diterbitkan ke IoT Platform berisi Retain flag. Opsi Retain As Publish menentukan apakah pesan yang diterima perangkat berisi Retain flag.
False: Pesan yang diterbitkan ke IoT Platform tidak berisi Retain flag. Opsi Retain As Publish tidak valid, dan pesan yang diterima perangkat tidak berisi Retain flag terlepas dari pengaturan opsi.
Apakah pesan yang diterbitkan ke IoT Platform berisi Retain flag | Apakah langganan dibuat saat pesan diterbitkan ke IoT Platform | Opsi Retain As Publish | Apakah pesan yang diterima perangkat berisi Retain flag |
True | Langganan dibuat, dan IoT Platform segera menerbitkan pesan. | 1 | True |
0 | False | ||
Langganan tidak dibuat, dan IoT Platform hanya menerbitkan pesan yang disimpan setelah langganan dibuat. | 1 | True | |
0 | True | ||
False | Status langganan tidak berpengaruh. | Nilai apa pun | False |
Jika perangkat menerima pesan yang berisi Retain flag, salah satu kondisi berikut terpenuhi:
Pesan yang diterbitkan ke IoT Platform berisi Retain flag dan opsi Retain As Publish diatur ke 1.
IoT Platform bertindak sebagai broker untuk menerbitkan pesan yang disimpan dan flag Retain As Publish diatur ke 0.
Penanganan Retain
Opsi Penanganan Retain menentukan apakah server menerbitkan pesan yang disimpan ke perangkat setelah langganan dibuat.
Nilai valid:
0: Jika perangkat berlangganan topik, server menerbitkan pesan yang disimpan dalam topik ke perangkat.
1: Jika perangkat belum pernah berlangganan topik dan kemudian berlangganan topik, server menerbitkan pesan yang disimpan dalam topik ke perangkat. Jika perangkat berulang kali membuat langganan dengan topik yang sama dalam sesi, perangkat hanya menerima pesan yang disimpan pada langganan pertama.
2: Server tidak menerbitkan pesan yang disimpan dalam topik terlepas dari apakah perangkat berlangganan topik tersebut.