MQTT adalah model penerbitan / langganan, protokol pesanan "ringan" melalui TCP / IP untuk komunikasi antara peranti "Internet of Things" seperti ESP8266, Raspberry Pi, dan lain-lain. Ia sangat popular dengan sumber daya rendah dan aplikasi berkuasa bateri seperti rumah automasi, sistem penggera keselamatan dan rangkaian sensor berkuasa bateri.
Mosquitto adalah broker mesej sumber terbuka (atau pelayan) yang menerapkan protokol MQTT. Dengan sokongan komuniti, dokumentasi, dan kemudahan pemasangannya, ia telah menjadi salah satu broker MQTT yang paling popular.
Prasyarat
- Pelayan Ubuntu 16.04 dengan
root
akses
- Buka port
TCP:1883
di firewall
Langkah Pertama: Pasang Broker Mosquitto
Kemas kini senarai pakej Ubuntu dan pasang Broker Mosquitto terkini yang tersedia daripadanya
sudo apt-get update
sudo apt-get install mosquitto
Perkhidmatan Mosquitto akan bermula selepas pemasangan.
Langkah Kedua: Pasang Pelanggan dan Uji
Pasang klien MQTT
sudo apt-get install mosquitto-clients
Pelanggan Mosquitto membantu kami menguji MQTT dengan mudah melalui utiliti baris perintah. Kami akan menggunakan dua tetingkap arahan, satu untuk melanggan topik bernama "test"
dan satu untuk menerbitkan mesej kepadanya.
Topik adalah label yang digunakan oleh broker untuk menyaring mesej untuk setiap pelanggan yang terhubung. Program pelanggan yang melanggan topik "Home1/BedroomTemp"
hanya akan mendengar mesej yang diterbitkan untuk topik yang sama oleh pelanggan lain.
Langgan topik "test"
mosquitto_sub -t "test"
Mosquito_sub
adalah pelanggan langganan yang kami pasang dalam arahan sebelumnya. Di sini kita menentukan " -t
" diikuti dengan nama topik.
Terbitkan mesej ke topik "test"
Log masuk ke terminal sebagai contoh kedua dan terbitkan mesej ke "test"
topik tersebut.
mosquitto_pub -m "message from mosquitto_pub client" -t "test"
Di sini parameter tambahan " –m
" diikuti dengan mesej yang ingin kami terbitkan. Tekan " Enter
" dan anda akan melihat mesej yang mosquitto_pub client
dipaparkan di terminal lain yang mosquito_sub client
sedang berjalan.
Langkah Ketiga: Selamat dengan Kata Laluan
Mosquitto dilengkapi dengan fail menghasilkan kata laluan yang dipanggil utiliti mosquitto_passwd
.
sudo mosquitto_passwd -c /etc/mosquitto/passwd dave
Password: password
Buat fail konfigurasi untuk Mosquitto yang menunjuk ke fail kata laluan yang baru sahaja kita buat.
sudo nano /etc/mosquitto/conf.d/default.conf
Ini akan membuka fail kosong. Tampalkan yang berikut ke dalamnya.
allow_anonymous false
password_file /etc/mosquitto/passwd
Simpan dan keluar dari editor teks dengan " Ctrl+O
", " Enter
" dan " Ctrl+X
".
Sekarang mulakan semula pelayan Mosquitto dan uji perubahan kami.
sudo systemctl restart mosquitto
Di tetingkap pelanggan langganan, tekan " Ctrl+C
" untuk keluar dari pelanggan langganan dan mulakan semula dengan perintah berikut.
mosquitto_sub -t "test" -u "dave" -P "password"
Perhatikan modal -P di sini .
Di tetingkap penerbitan klien, cuba terbitkan mesej tanpa kata laluan.
mosquitto_pub -t "test" -m "message from mosquitto_pub client"
Mesej akan ditolak dengan mesej ralat berikut.
Connection Refused: not authorised.
Error: The connection was refused.
Sekarang terbitkan mesej dengan username
dan password
.
mosquitto_pub -t "test" -m "message from mosquitto_pub client" -u "dave" -P "password"
Tekan " Enter
" dan anda akan melihat mesej di tetingkap pelanggan langganan, seperti pada Langkah Kedua.
Kesimpulannya
Kami kini telah menyediakan pelayan MQTT yang dilindungi kata laluan. Anda boleh menggunakan IP Umum pelayan Ubuntu anda sebagai broker MQTT untuk projek anda.