All Products
Search
Document Center

ApsaraMQ for MQTT:Model pesan P2P

Last Updated:Jul 08, 2025

Selain model pesan publikasi-langganan (Pub/Sub) yang didukung oleh protokol Message Queuing Telemetry Transport (MQTT) standar, ApsaraMQ for MQTT juga mendukung model pesan point-to-point (P2P). Topik ini menjelaskan konsep dan prinsip model P2P serta cara menggunakan ApsaraMQ for MQTT untuk mengirim dan menerima pesan P2P.

Apa itu model P2P?

P2P adalah model pesan yang digunakan dalam skenario pesan satu-lawan-satu, di mana hanya ada satu pengirim dan satu penerima. Sebaliknya, model Pub/Sub biasanya digunakan dalam skenario satu-lawan-banyak atau banyak-lawan-banyak, yang melibatkan satu atau lebih pengirim dan beberapa penerima.

Dalam model P2P, pengirim menentukan penerima saat mengirim pesan dan memastikan bahwa pesan tersebut hanya dikonsumsi oleh klien tertentu. Pengirim secara langsung menentukan penerima dalam informasi topik, sehingga penerima dapat menerima pesan tanpa harus berlangganan terlebih dahulu.

Model P2P tidak hanya mengurangi biaya pendaftaran langganan bagi penerima tetapi juga mengurangi latensi karena tautan pesan dioptimalkan secara terpisah.

Mengirim pesan menggunakan model P2P vs. Mengirim pesan menggunakan model Pub/Sub

Berikut adalah perbedaan antara pengiriman pesan di ApsaraMQ for MQTT menggunakan model P2P dan model Pub/Sub:

  • Pengiriman pesan: Dalam model Pub/Sub, pengirim harus mengirim pesan ke topik yang disepakati dengan penerima. Dalam model P2P, pengirim tidak perlu menyetujui topik terlebih dahulu dan dapat langsung mengirim pesan ke penerima berdasarkan kesepakatan.

  • Penerimaan pesan: Dalam model Pub/Sub, penerima harus berlangganan topik yang disepakati sebelumnya untuk menerima pesan. Dalam model P2P, penerima dapat menerima pesan tanpa harus berlangganan topik terlebih dahulu, menyederhanakan logika program dan mengurangi biaya langganan.

Kirim pesan P2P

Saat menggunakan SDK ApsaraMQ for MQTT untuk mengirim pesan P2P, Anda perlu mengatur topik tingkat kedua menjadi p2p dan topik tingkat ketiga menjadi ID klien penerima.

Contoh Kode dalam Java

String p2pTopic =topic+"/p2p/GID_xxxx@@@DEVICEID_001";
sampleClient.publish(p2pTopic,message);

Saat menggunakan SDK ApsaraMQ for RocketMQ untuk mengirim pesan P2P, Anda hanya perlu mengatur properti subtopik menjadi string subtopik dalam contoh kode sebelumnya karena topik induk dan subtopik dikonfigurasikan secara terpisah.

Contoh Kode dalam Java

String subTopic="/p2p/GID_xxxx@@@DEVICEID_001";
msg.putUserProperties(PropertyKeyConst.MqttSecondTopic, subTopic);

Tabel berikut menyediakan tautan untuk mengunduh SDK berbagai bahasa pemrograman dan contoh kode untuk mengirim pesan P2P.

Bahasa

Unduh SDK

Contoh kode

.NET

Eclipse Paho .NET SDK

Contoh kode .NET

C

Eclipse Paho C SDK

Contoh kode C

Java

Eclipse Paho SDK

Contoh kode Java

JavaScript

Eclipse Paho JavaScript

Contoh kode JavaScript

Python

Eclipse Paho Python SDK

Contoh kode Python

PHP

Mosquitto-PHP

Contoh kode PHP

Catatan

SDK untuk Go tidak mendukung pengiriman atau penerimaan pesan P2P.

Terima pesan P2P

Klien penerima hanya perlu menyelesaikan inisialisasi sebelum menerima pesan P2P.