Publish/subscribe, broker, topic, QoS, retain, dan Last Will & Testament.
MQTT (Message Queuing Telemetry Transport) dirancang untuk jalur sempit dan perangkat terbatas: header hanya 2 byte, koneksi TCP jangka panjang, dan model publish/subscribe.
/, mis. home/kamar/temp.Dua klien: sensor (publisher) dan dashboard (subscriber) dengan wildcard +.
| Wildcard | Arti | Cocok dengan |
|---|---|---|
home/kamar/temp | Exact | home/kamar/temp saja |
home/+/temp | + = satu level apa pun | home/kamar/temp, home/rumah/temp |
home/# | # = semua level di bawahnya | home/kamar/temp, home/rumah/led, ... |
lokasi/ruang/parameter) membuat
wildcard dan rules engine mudah dipakai.
| QoS | Garansi | Use Case |
|---|---|---|
| 0 | Fire & forget — bisa hilang | Data yang boleh hilang (suhu tiap menit) |
| 1 | Minimal sekali — bisa duplikat | Telemetri penting, alarm |
| 2 | Persis sekali — tanpa duplikat | Pembayaran, counter (mahal, lambat) |
QoS efektif = minimum dari QoS publisher dan subscriber. QoS 2 memakai 4-step handshake — jarang dipakai di IoT skala besar.
Pesan dengan flag retain=True disimpan broker.
Setiap subscriber BARU yang cocok langsung menerimanya —
berguna untuk "status terakhir" (mis. saklar: ON/OFF).
Setiap klien bisa mendaftarkan "pesan wasiat": jika klien
mati mendadak (baterai habis, jaringan putus) tanpa
disconnect() yang sopan, broker mempublikasikan pesan itu.
Ini cara sistem tahu bahwa sebuah device hilang.
Kombinasi retain + LWT adalah pola standar: topic status selalu berisi kondisi terakhir device — ONLINE atau OFFLINE.
sensor-01 suhu, sensor-02 RTH) dan 1 subscriber dengan filter home/#. Berapa pesan yang diterima?home/lampu/state = "ON"/"OFF" bergantian 4 kali, lalu subscriber baru — apa yang diterimanya pertama kali?topic_matches(): buat 5 pasangan (filter, topic) dan cetak hasilnya. Setidaknya 2 harus False.