Lewati ke konten
Kebun Digital
Pustaka

Catatan Lapangan: MQTT yang Tahan Banting

Pelajaran dari menjalankan MQTT di jaringan seluler pedesaan yang sering putus.

Terakhir dirawat


Di lab, MQTT terasa sepele. Di lapangan dengan sinyal seluler yang naik-turun, detail kecil menentukan apakah data sampai atau hilang.

Tiga setelan yang paling berpengaruh

  • QoS 1, bukan 0. Di jaringan tak stabil, “kirim dan lupakan” berarti kehilangan pembacaan. QoS 1 menjamin sampai minimal sekali — sisi penerima cukup idempoten terhadap duplikat.
  • Clean session = false. Broker menahan pesan untuk klien yang sempat putus, jadi node tidak kehilangan perintah saat offline beberapa menit.
  • Keep-alive yang realistis. Terlalu pendek, koneksi terus putus-sambung dan boros daya; terlalu panjang, kematian node telat terdeteksi.
// Buffer lokal saat offline; siram ketika koneksi pulih.
if (!client.connected()) bufferReading(reading);
else flushBuffer();

Perlakukan jaringan sebagai sesuatu yang pasti akan putus, lalu rancang agar pemulihan berjalan otomatis tanpa intervensi operator.