MQTT – Moquitto w praktyce – instalacja i podstawy użytkowania

W poprzednim artykule opisałem podstawowe zagadnienia związane z protokołem komunikacyjnym MQTT, teraz omówię praktyczne wykorzystanie komunikacji przy użyciu brokera Mosquitto.

Mosquitto jest lekkim brokerem obsługującym protokół MQTT udostępniany przez Eclipse Foundation na licencji EPL/EDL.

Instalacja brokera

Poniżej przedstawiona metoda pozwoli zainstalować Mosquitto na systemach typu Ubuntu/Debian oraz Raspbian. Należy uruchomić terminal i wywołać następujące polecenia:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mosquitto

po zakończonej instalacji możemy sprawdzić, czy nasz serwer MQTT działa. Możemy to wykonać przy pomocy polecenia:

systemctl status mosquitto

Jeżeli otrzymaliśmy komunikat zawierający linię w stylu:

Active: active (running) since Wed 2018-08-01 16:37:46 CEST; 2s ago

To znaczy że broker Mosquitto działa prawidłowo.

Instalacja programów klienta

Kiedy już działa nasz serwer to potrzebujemy jeszcze klientów, który będą mu generować robotę. Instalacja w systemach z rodziny Debiana jest równie prosta jak dla brokera:

sudo apt install mosquitto-clients

W ten sposób mamy teraz do dyspozycji dwa programy:

  • mosquitto_sub – służy do subskrybowania tematów
  • mosquitto_pub – służy do publikowania wiadomości

Prosta komunikacja z wykorzystaniem MQTT

Kiedy mamy już gotowe środowisko to możemy przystąpić to pierwszych testów. W tym celu musimy mieć otwarte dwa okna terminala.

W pierwszym oknie wywołujemy polecenie subskrypcji:

mosquitto_sub -t myTopic

A w drugim polecenie publikacji:

mosquitto_pub -t myTopic -m "message"

Po wywołaniu polecenia publikacji w oknie terminala w którym uruchomiliśmy subskrypcję widzimy naszą wiadomość.

Warto zwrócić uwagę, że program mosquitto_sub jest cały czas otwarty i nasłuchuje, a program mosquitto_pub publikuje wiadomość w ramach tematu i się zamyka. Argumenty z którymi są wywoływane programy są dosyć czytelne:

  • -t [temat] – określa nazwę tematu
  • -m [wiadomość] – służy do określania jaka wiadomość ma zostać opublikowana

Komunikacja MQTT pomiędzy różnymi urządzeniami

MQTT umożliwia oczywiście komunikację pomiędzy różnymi urządzeniami, jedyne co musi wiedzieć aplikacja klienta to adres IP urządzenia na którym pracuje broker. Dla przykładu uruchomię serwer Mosquitto na Raspberry Pi, na którym też będzie jeden klient subskrybujący, a na PC uruchomię publikację i subskrypcję.

Nowością są polecenie subskrypcji:

mosquitto_sub -h 192.168.1.100 -t myTopic

i polecenie publikacji:

mosquitto_pub -h 192.168.1.100 -t myTopic -m "message"

Ze względu na to, że są uruchamiane na innym urządzeniu niż pracuje broker, to musimy podać adres IP naszego pośrednika. Służy do tego argument -h [adres ip].

Podsumowanie

Jak można było zaobserwować na podstawie powyższych przykładów, MQTT to bardzo proste, ale potężne narzędzie. W następnej części zaprezentuje kontrolę dostępu.

Facebook Comments

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.