MQTT
Sangat banyak protokol yang digunakan untuk komunikasi, seperti HTTP, TCP/IP, ICMP, FTP, DNS, SSH dan masih banyak lagi. Setiap protokol memiliki fungsi dan tujuan yang berbeda.
Apa Itu MQTT ???
Protokol MQTT (Message Queuing Telemetry Transport) adalah protokol yang berjalan di atas stack TCP/IP dirancang khusus untuk komunikasi “Machine to machine” dan mempunyai ukuran paket data yang kecil (minimum 2 bytes), MQTT dirancang untuk perangkat yang beroperasi pada daya rendah dan bandwith rendah.
Pada MQTT ada 3 pemeran utama yaitu Publisher, subscriber, dan broker. Publisher adalah peran yang memberikan suatu pesan ke topik tertentu. Subscriber yaitu klien yang subscribe suatu topik, sehingga ketika Publisher mengirimkan pesan ke topik tersebut, subscriber dengan topik yang sama akan menerima pesan tersebut. kemudian broker berperan sebagai perantara antara publisher dan subscriber. Broker akan meneruskan pesan dari publisher untuk dikomsumsi oleh subscriber.
Protokol MQTT sangat cocok digunakan untuk project IoT karena MQTT cenderung mudah penggunaaannya dibandingkan dengan HTTP/HTTPS yang lambat dan tidak real time dalam mengirim perintah serta memasukkan data, bandwith HTTP juga besar, dan HTTP hanya bisa merequest ke Server.
Komponen MQTT
Berikut komponen komponen yang terdapat dalam MQTT
- Publisher dan Subscriber
Protokol MQTT ini memili kemampuan publish dan Subcribe, keuntungan dari sistem ini adalah antara sumber pengirim data (publisher) dan penerima data (klien) tidak saling mengetahui karena ada broker diantara mereka atau istilahnya adalah space decoupling dan adanya time decoupling, dimana klien dan publisher tidak perlu terkoneksi secara bersamaan.
2. Topic
Di dalam MQTT ada istilah Topic yaitu berupa UTF-8 string, hampir sama dengan topik pada chat hanya saja lebih sederhana/ Topic berfungsi sebagai filter untuk broker dalam mengirimkan pesan ke klien yang terhubung. Topik merupakan string akan tetapi ada beberapa character yang mempunyai arti khusus. Misalnya character “ / “ mempunya arti seperti halnya direktori. kemudian karakter “ +” merupakan character Wildcard dalam 1 level directory dan juga “ #” yang merupakan character wildcard dalam multiple level directory.
3. Broker
Broker merupakan bagian paling fundamental dalam MQTT. Broker berfungsi untuk menerima semua pesan, kemudian mengelolah/ menyaring semua pesan tersebut agar pesan — pesan hanya sampai pada subscriber topik yang bersesuaian.
Sinyal Kontrol protokol MQTT
MQTT mempunyai 14 type sinyal kontrol seperti berikut ini :
- CONNECT — Client request to connect to Server
- CONNACK — Connection Acknowledgement
- PUBLISH — A message which represents a new/separate publish
- PUBACK — QoS 1 response to a PUBLISH message
- PUBREC — First part
- PUBREL — Second part of QoS 2 message flow
- PUBCOMP — Last part of the QoS 2 message flow
- SUBSCRIBE — A message used by clients to subscribe to specific topics
- SUBACK — Acknowledgement of a SUBSCRIBE message
- UNSUBSCRIBE — A message used by clients to unsubscribe from specific topics
- UNSUBACK — Acknowledgement of an UNSUBSCRIBE message
- PINGREQ — Heartbeat message
- PINGRESP — Heartbeat message acknowledgement
- DISCONNECT — Graceful disconnect message sent by clents before disconnecting
sebelum mengaplikasikannya ke real device anda bisa mempraktekan MQTT pada local server
pertama download Mosquito broker pada link dibawah ini :
Setelah anda menginstalnya, kemudian buka foldernya dimana anda meletakkan folder Mosquitto tersebut yang anda instal sebelumnya.
jalankan mosquito nya cara mengklik 2 kali mosquito.exe, maka akan muncul seperti gambar dibawah ini
kemudian jalankan mosquitto subscriber dari cmd, seperti pada gambar dibawah ini
setelah itu masukkan perintah dibawah ini, -h disitu berarti host, kemudian masukkan ip local anda, kemudian masukkan -t yaitu topik, topik nya adalah test
Kemudian buka CMD, buka terminal mosquitto_pub.exe kemudian -h, kemudian masukkan ip local anda, masukkan -t dengan topik test dan -m yang artinya message, misalkan saya buat disitu adalah “Hallo Putri Pasaribu” . Maka pesan akan ditampilkan di terminal mosquitto_subscribe
Oke, demikian pembahasan saya mengenai protokol MQTT, semoga bermanfaat :)