Instalasi Eclipse Mosquitto, Message Broker Untuk Protokol MQTT
Sebelumnya, embeddednesia telah mengulas sekilas mengenai protokol komunikasi MQTT, dan bagaimana protokol tersebut dapat diimplementasikan pada perangkat embedded yang memiliki concern terhadap pemakaian daya yang rendah dan bandwith yang terbatas. Pada tulisan kali ini, embeddednesia akan memberikan bahasan mengenai salah satu message broker untuk MQTT yang bersifat Open Source, namanya adalah Mosquitto.
Eclipse Mosquitto™ adalah Message broker yang mengimplementasikan protokol MQTT versi 3.1 dan 3.1.1 . Dari situs resminya, Mosquitto, telah mendukung berbagai sistem operasi mulai dari Mac OS, Microsoft Windows, dan berbagai varian distro Linux. Namun dalam kesempatan kali ini, embeddednesia memilih menggunakan Sistem Operasi Ubuntu dikarenakan sifatnya yang Open Source dan mudah digunakan terlebih jika dilakukan instalasi pada cloud atau VPS.
Bagi anda yang memiliki komputer Windows, anda bisa membuat Virtual Machine menggunakan Virtual Box dan menginstall Guest OS dengan Sistem Operasi Ubuntu 16.04 LTS. Jika semuanya sudah siap,terlebih dahulu tambahkan repositori ke Ubuntu
Untuk menginstall broker gunakan sudo apt-get install
Baris pertama digunakan untuk menginstall mosquitto message broker, sedangkan baris kedua untuk menginstall mosquitto client yang nanti berguna, jika ingin menguji apakah mosquitto sudah berhasil terinstal dengan benar.
Begitu diinstall, mosquitto akan secara otomatis running di service. Jalankan sudo service mosquitto status untuk melihat status mosquitto. Jika hasilnya seperti berikut, maka mosquitto telah berjalan di service
Port default yang digunakan mosquitto adalah 1883,
Publish dan Subscribe
Untuk mensubscribe topic dapat digunakan command berikut
mosquitto_sub -V mqttv311 -t [nama topic] -d
Perintah tersebut akan membuat MQTT client terhubung dengan server mosquitto lokal dan membuat request subscribe kepada topic dengan nama yang dideklarasikan setelah – t. Sedangkan -V digunakan untuk mendeklarasikan versi mqtt yang digunakan (dalam contoh digunakan mqtt versi 3.1.1). Dan yang terakhir, -d dipakai untuk mengaktifkan fitur debug
Seandainya, diinginkan subscribe sensor radiasi dari sebuah robot yang diberinama slvr01, topic -nya adalah sensor/slvr01/radiation. Sehingga pada terminal linux perintahnya menjadi sebagai berikut
Pertama Broker akan menerima request CONNECT dari client, dan memberikan balikan CONNACK (Conect Acknownlodge). Setelah berhasil, client akan melanjutkan dengan request SUBSCRIBE, dan kemudian broker akan menyetujuia permintaan subscribe dengan merespon SUBACK (Subscribe Acknowlege).
Client bisa melakukan subscribe terhadap topic apapun, meskipun sebenarnya topic tersebut belum dibuat dan dipublish. Jika anda memperhatikan pada jendela terminal linux selang beberap saat SUBACK diterima, anda akan melihat trace PINREQ dan PINQRESP dikirimkan dan diterima. Trace tersebut menunjukkan bahwa koneksi antara client dan server berada dalam kondisi normal.
Untuk mempublish message, digunakan command berikut
mosquitto_pub -V mqttv311 -t [namatopic] -m "10 f" -d
Dimana deklarasi setelah -V menunjukan versi mqtt yang digunakan, sedangkan -t untuk mendeklarasikan topic yang dipublish, dan -m untuk mengirim payload atau isi message yang ingin dikirimkan. Jika diinginkan mengirim data 100 Bq untuk topic sensor/slvr01/radiation . buka jendela terminal baru dan masukkan perintah berikut
perhatikan terminal client dimana perintah subscribe dijalankan, anda akan melihat message yang dikirim pada terminal publisher telah diterima di sisi client subscriber.
Selamat, kini anda telah berhasil menginstall Mosquitto MQTT Server dan mengujinya dengan mosquitto client untuk mempublish dan mensubscribe sebuah topic tertentu. Namun yang diuji pada tulisan ini hanyalah sebatas client dan server berada pada mesin yang sama (localhost).
Pada dunia nyata, anda akan dihadapkan pada client yang berjalan di mesin yang berbeda dengan mesin server. Berikutnya embeddednesia akan membahas mengenai masalah ini.
Anda harus log masuk untuk menerbitkan komentar.