HTTP vs MQTT mana yang cocok untuk IoT
HTTP adalah protokol yang paling populer dan paling luas digunakan. Tetapi beberapa tahun terakhir MQTT cukup populer seiring meningkatnya kepopuleran IoT. Sedangkan pertanyaannya lebih baik menggunakan HTTP atau MQTT untuk keperluan IoT?
Design and Messaging
MQTT adalah datasentris sedangkan HTTP adalah dokumensentris. HTTP adalah protokol request-response untuk kebutuhan komputerisasi klien server yang tidak optimal untuk perangkat mobile(device IoT). Kelebihan MQTT adalah adalah keringanannya (MQTT mengirim data sebagai byte array) dan dengan model publish/subscribe, dimana ini cocok untuk perangkat dengan sumber daya terbatas dan membantu supaya lebih hemat energi.
Disamping itu model publish/subscribe menyediakan klien dengan keberadaan independen dari satu sama lain dan meningkatkan keandalan seluruh sistem. Ketika satu klien tidak berfungsi, seluruh sistem dapat terus bekerja dengan baik.
Kecepatan dan Pengiriman
Menurut pengukuran dengan jaringan 3G, MQTT 93 kali lebih cepat daripada HTTP. Disamping itu dibandingkan dengan HTTP, MQTT memastikan kemampuan pengiriman lebih tinggi. Ada 3 level Quality of Service (QoS)
- paling banyak satu kali (at most once): menjamin pengiriman upaya terbaik.
- setidaknya satu kali (at least once): dijamin bahwa pesan akan dikirimkan setidaknya satu kali. Tapi pesannya juga bisa disampaikan lebih dari satu kali.
- tepat satu kali (exactly once): menjamin bahwa setiap pesan hanya diterima sekali oleh mitra
MQTT juga menyediakan pengguna dengan opsi Last will & Testament dan Retained messages. Yang pertama berarti bahwa dalam kasus disconnect yang tak terduga dari klien semua klien yang telah subscribe akan mendapatkan pesan dari broker. Pesan yang disimpan berarti klien yang baru berlangganan akan mendapatkan pembaruan status segera. Protokol HTTP tidak memiliki satu pun dari kemampuan ini.
Kerumitan dan Ukuran pesan
Kelebihan lain dari MQTT ialah ukuran pesan dan kerumitan. MQTT sangat sederhana yang hanya ada CONNECT, PUBLISH, SUBSCRIBE, UNSUBSCRIBE dan DISCONNECT. MQTT memiliki header pesan yang sangat singkat dan ukuran pesan paket terkecil dari 2 byte. Menggunakan format pesan teks dengan protokol HTTP memungkinkannya untuk menyusun header dan pesan yang panjang.
Ini membantu menghilangkan masalah karena dapat dibaca oleh manusia, tetapi pada saat yang sama itu tidak perlu untuk perangkat dengan sumber daya terbatas. Dari uraian diatas kita dapat menyimpulkan bahwa MQTT lebih cocok digunakan untuk IoT yang bisa untuk mengirim lebih cepat dengan sumber daya bandwidth yang terbatas.