Połączenie do serwera mosquitto pod adresem 192.168.1.1 i prenumerata wszystkich komunikatów w temacie "dc/test":
mosquitto_sub -h 192.168.1.1 -t "dc/test"
Jeżeli chcemy dobierać wszystkie komunikaty z podatematów test to należy zastosować:
mosquitto_sub -h 192.168.1.1 -t "+/test"
Należy mieć na uwadze, że jeżeli pojawi się komunikat w temacie nadrzędnym do "test" np.: xy/test/beta to nie zostanie on odebrany.
Subskrypcja wszystkich komuniktów ze wszystkich tematów zaczynących się od "dc":
mosquitto_sub -h 192.168.1.1 -t "dc/#"
Pobieranie wszystkich komunikatów w których pojawia się podtemat "test":
mosquitto_sub -h 192.168.1.1 -t "+/test/#"
Pobieranie wszystkich komunikatów ze wszystkich tematów:
mosquitto_sub -h 192.168.1.1 -t "#"
Połączenie między serwerami MQTT technicznie wygląda tak jakby jeden z brokerów stawał się klientem drugiego brokera. W pliku konfiguracyjnym brokera który będzie pełnił rolę klienta definiujemy parametry połączenia. W pl
# Nazwa połączenia
connection external-bridge
# Adres zdalnego brokera
address 192.168.1.1
# Nazwa którą klient będzie się przedstawiał zdalnemu brokerowi
remote_clientid xyz
topic # in
topic określa które tematy i jak mają być współdzielone, składnia tego polecenie wyląda następująco:
topic pattern [[[ out | in | both ] qos-level] local-prefix remote-prefix]
Jako pierwszy parametr podajemy wzorzec który określa z których tematów komunikaty mają być współdzielone.
Przekazywanie komunikatów w tematach może odbywać się na trzy sposoby:
in odbierać wiadomości z innego serwera (nie wypuszczając lokalnych komunikatów na zewnątrz)out wysyłać wszystkie lokalne komunikaty do drugiego serwera nie pobierając z niego żadnych komunikatówboth replikuje komuniakty w dwie stronyMożemy określić poziom QoS używając 0, 1 lub 2.
Ostatnia część to ewentualna translacja tematów. Mamy możliwość zmiany prefixów tematów z jednego brokera przy odbiorze/wysyłaniu komunikatów do drugiego brokera. Pomijając te parametry otrzymamy efekt "bezpośredniego spięcia" brokerów - komuniakty będą przesyłane bez jakichkolwiek zmian w tematach.
topic # both 2 local/topic/ remote/topic/
Powyższe polecenie spowoduje, że wszystkie lokalne tematy po przesłaniu na zdalnego brokera pojawią się na nim z prefixem remote/ a odbierane z niego pojawią się lokalnie z prefixem local/.
topic "" both 2 local_topic remote_topic
Nic nie stoi na przeszkodzie by zamiast parametrów użyć pustego parametru "" - w zamieszczonym wyżej przypadku broker całkowicie zmieni tematy.
Podajemy namiary na plik z certyfikatem publicznym serwera
bridge_cafile ca.crt
Podajemy dane do logowania na zdalny serwer:
remote_username user
remote_password pass