Oto krótka instrukcja pozwalająca na szybko postawić system oparty na MQTT działający na Linuxie/FreeBSD w którym wszystkie funckje pełni mosquitto.
Spis treści
Mosquitto w wersji 1.6.12 można pobrać tutaj mosquitto-1.6.12.tar.gz Archiwum po rozpakowaniu kompilujemy uruchamiając w komendę make (pod Linuxem) lub gmake (pod FreeBSD). Należy pamiętać o tym, że w systemie muszą być zainstalowane wszystkie zależności niezbędne do poprawnej kompilacji. Po kompilacji utworzą się pliki wykonywalne
które kopiujemy w dogodne dla nas miejsce. Warto skopiować też plik mosquitto.conf znajdujący się w głownym kataogu ze źródłami. Skompilowana wersja pod FreeBSD może być probrana stąd mosquitto_freebsd.tar.gz
Plik z hasłam można stworzyć na 2 sposoby. Pierwszy z nich to utworzenie pliku zawierającego loginy oddzielone dwukropkiem od hasła:
user1:passwordX
user2:passwordY
Tak utworzony plik poddajemy działaniu mosquitto_passwd: mosquitto_passwd -U passwd_file
Orzymamy plik w który widoczne będą loginy a dwukropku hash hasła
Druga opcja to użycie mosquitto_passwd w sposób interaktywny: mosquitto_passwd -c passwd_file user3
Wywołanie tego polecenie spowoduje, że program zapyta nas o hasło a po jego poprawnym dwukrotnym wpisaniu utowrzy w pliku passwd_file login user3 z hashe hasła które podaliśmy.
mosquitto_passwd pozwala również na usuwanie użytkowników poprzez użycie polecenia mosquitto_passwd -D passwd_file user1 - w tym przykładzie usunięty zostanie user1.
Po utworzeniu pliku z hasłami należy dookonać zmian w pliku konfiguracyjnym:
allow_anonymous falseper_listener_settings truepassword_file passwd_fileW pliku konfiguracyjnym brokera musim wskazać pliki z ceryfikatem CA, certyfikatem serwera i kluczem serwera w formacie PEM.
cafile ca.crt
certfile server.crt
keyfile server.key
Następnie wydajemy polcenie ./mosquitto -v -c mosquitto.conf, opcja -v daje możliwość obejrzenia szczegółowych logów
mosquitto_sub -h 192.168.X.Y -t "test" --cafile ca.crt -u user2 -P passwordY
Nasz klient zacznie w ten sposób nasłuch w temacie "test" publikowanym przez borkera na maszynie 192.168.X.Y
mosquitto_pub -h 192.168.X.Y -t "test" --cafile ca.crt -m "Działa?" -u user2 -P passwordY
Powyższe polcenie to uruchomienie serwera który wyśle do borkera komunikat "Działa?" w temacie "test". Jeżeli na konsoli klienta wyświetlił się napis "Działa?" to znaczy, że wszystko działa jak należy.