Topik ini menjelaskan pola permintaan-tanggapan dalam Message Queuing Telemetry Transport (MQTT) 5.0 yang didukung oleh IoT Platform.
Informasi latar belakang
Dalam pola publish-subscribe MQTT, pesan dipublikasikan dan diterima secara asinkron, serta penerbit dan subscriber terpisah. Namun, beberapa skenario bisnis perangkat IoT memerlukan tanggapan dari subscriber. Dalam kasus seperti ini, pola permintaan-tanggapan dapat digunakan—misalnya, saat server mengirim perintah untuk menyalakan atau mematikan perangkat, atau saat perangkat meminta data dari server.
Deskripsi fitur
Pola permintaan-tanggapan dalam MQTT 5.0 menggunakan pesan permintaan dan tanggapan secara asinkron, berbeda dengan pola permintaan-tanggapan HTTP. Untuk mengaitkan pesan tanggapan dengan pesan permintaan, Response Topic dan Correlation Data ditambahkan ke dalam pesan permintaan, sehingga menyederhanakan pengembangan di sisi responder.
Response Topic: string yang menentukan topik tempat responder mempublikasikan pesan tanggapan.
Correlation Data: data biner yang menyimpan konteks permintaan. Responder dapat menggunakan data tersebut untuk mengidentifikasi pesan permintaan.
Gambar berikut menunjukkan proses pertukaran pesan saat menggunakan pola permintaan-tanggapan.

Saat mengirim beberapa permintaan ke perangkat secara bersamaan, Anda dapat menyertakan ID permintaan dalam Correlation Data setiap pesan permintaan agar responder dapat mengidentifikasi permintaan tersebut.
IoT Platform mendukung komunikasi revert-remote procedure call (RRPC). Jika Anda ingin mengontrol perangkat jarak jauh secara real-time, Anda dapat menggunakan RRPC untuk mendapatkan tanggapan secara sinkron.
Pesan QoS 1 harus diterima oleh IoT Platform. Jika Anda ingin memastikan bahwa subscriber menerima pesan dan menyelesaikan aksi yang diminta, kami menyarankan penggunaan pola permintaan-tanggapan.
Skema penggunaan
Perangkat meminta data dari server
Dalam beberapa skenario, perangkat IoT perlu meminta data dari server. Misalnya, mesin memasak pintar meminta berbagai resep dari cloud, dengan jenis resep berbeda disimpan dalam topik terpisah. Dengan pola permintaan-tanggapan, server cukup merespons dengan resep yang diminta tanpa perlu membedakan topik, sehingga menyederhanakan pengembangan di sisi server.
Perangkat dapat menggunakan Correlation Data untuk mengaitkan pesan permintaan dan tanggapan, mirip dengan skenario kendali jarak jauh.
Server hanya perlu merespons dengan data yang diminta oleh perangkat, tanpa harus mengidentifikasi topik tempat pesan tanggapan dikirim.

Server mengontrol perangkat jarak jauh
Ketika server mengirim perintah ke perangkat jarak jauh, server biasanya mengharapkan tanggapan segera—misalnya, saat mengirim perintah untuk membuka kunci elektronik. Pola permintaan-tanggapan cocok untuk skenario ini, dan Anda dapat menyertakan informasi identitas perangkat dalam Correlation Data untuk mengotentikasi perangkat.
