Biasanya, Anda harus memilih protokol dengan jaminan kuat tentang apakah klien akan menerima paket / pesan, dalam urutan apa, dan apakah duplikasi diizinkan.
Untuk jaringan perangkat IoT yang saling mengirim pesan berukuran kecil hingga sedang , menggunakan MQTT dengan Quality of Service 2 sepertinya cocok dengan use case Anda. Sebagaimana dinyatakan dalam tautan HiveMQ:
QoS tertinggi adalah 2, itu menjamin bahwa setiap pesan hanya diterima satu kali oleh mitra. Ini adalah tingkat layanan yang paling aman dan juga paling lambat. Jaminan diberikan oleh dua aliran di sana dan kembali antara pengirim dan penerima.
Perhatikan bahwa QoS 2 memang mempertahankan urutan pesan, dan, sebagaimana dinyatakan, mencegah pesan yang digandakan.
Ada overhead yang substansial dalam menggunakan MQTT QoS 2 dibandingkan dengan QoS 0 standar (yang mirip dengan pesan api-dan-lupa; jika tidak mencapai broker, maka pesan tidak dikirim kembali dan hilang selamanya dan hilang selamanya ) - QoS 2 membutuhkan 4 pesan ( PUBLISH
dari pengirim, PUBREC
dari pialang, PUBREL
dari klien, PUBCOMP
dari pialang), sehingga umumnya akan membutuhkan waktu lebih lama untuk memproses, mengambil lebih banyak sumber daya (karenanya transmisi radio lebih lama dan penggunaan daya lebih banyak pada titik akhir yang dibatasi).
Pesan MQTT QoS 2 hanya akan dikirim ulang dari pengirim berulang kali hingga menerima pengakuan dari broker, jadi akhirnya pesan Anda harus melalui, bahkan jika koneksi Anda tidak sempurna.
Apakah protokol publikasi-berlangganan berbasis-topik sesuai untuk kasus penggunaan Anda, tergantung pada Anda untuk menentukan; artikel Wikipedia mungkin membantu Anda mendapatkan ide.