
Abbildung 1: In der oberen Konsole schickt ein Client eine Nachricht, die ein anderer Client – in der Konsole unten – sogleich empfängt.
Kolumnist Charly neigt wahrlich nicht zu Feindseligkeiten, doch mit einer Spezies hat er elefantengroße Probleme: Mücken. Beim Message-Broker Mosquitto jedoch macht er eine Ausnahme und lässt die Waffen schweigen, denn mit dem ist der eine oder andere gute Stich zu machen.
Jedes Jahr sterben rund 100 Tierarten aus, habe ich gelesen. Warum nicht Mücken? Ich bin bei dem Thema so gnadenlos, weil mein Körper allergisch auf deren Stiche reagiert. Ich kann nicht schlafen, wenn nur einziger Quälgeist in meinem Schlafzimmer summt. Meine stets griffbereite Waffe, um die Population meiner Feinde zu dezimieren, ist ein 30 Jahre alter Schulatlas neben dem Bett. Es bleibt aber eine Sisyphusarbeit.
Außerdem stören die Blutflecken auf der Tapete die Atmosphäre, die ich im Schlafzimmer haben möchte, weshalb praktisch jährlich neu tapeziert wird. Mücken fressende Spinnen anzusiedeln, fand im Familienrat auch keine Mehrheit, ebenso wenig wie ein Linux- und Lidar-gestützter Antimückenlaser (Light Detection and Ranging). Krieg ist Elend.
Ein jeder muss mir nachsehen, dass ich skeptisch auf Software reagiere, die nach den fliegenden Blutsaugern benannt ist. Mosquitto [1] allerdings, so viel verrate ich vorab, darf bleiben. Das Tool heißt so, weil der Namengeber unbedingt die Buchstaben MQTT unterbringen wollte, das Akronym für Message Queue Telemetry Transport. Und Telemetrie ist schon das passende Stichwort, um Mosquittos Aufgabe zu beschreiben.
Mosquitto betreibt eine Nachrichten-Drehscheibe, im MQTT-Slang heißt sie Message-Broker. Jeder mitteilungsbedürftige Client schickt seine Nachricht an den Broker (Publisher), und alle Clients, die ein Abo beim Broker haben (Subscriber), erhalten die Nachricht. Der Broker heißt schlicht »mosquitto« und läuft als Daemon, die Clients, die publizieren und abonnieren, heißen »mosquitto_pub« und »mosquitto_sub«.
Zuerst starte ich den Broker. Er läuft normalerweise im Hintergrund, aber ich kann den Daemon auch stoppen und auf der Konsole im Vordergrund starten. Da Mosquitto auf Port 1883 arbeitet, brauche ich dafür nicht einmal Rootrechte:
mosquitto -v
Der Parameter »-v« sorgt für eine höhere Geschwätzigkeit, sodass ich dem Broker bei der Arbeit zusehen kann. Danach abonniere ich mit dem Client »mosquitto_sub« eine Art Betreff, das Topic. Es ist frei wählbar und sollte im Idealfall die Art der Daten, die mich erwarten, sinnvoll beschreiben. Als Beispiel abonniere ich nun das Topic »date«:
mosquitto_sub -h 127.0.0.1 -i subscriber -t date
Der »-i«-Parameter beschreibt die Identität des Clients und ist frei wählbar. Hier habe ich »subscriber« genommen, in der Praxis sinnvoller erscheint mir, den Hostnamen des Clients anzugeben.
Mücken-Nachricht
Jetzt wird es Zeit, etwas zu publizieren. Auf einer anderen Konsole gebe ich
mosquitto_pub -h 127.0.0.1 -i publisher -t date -m "30.02.2017 ;-)"
ein (Abbildung 1). Die mit »-m Text« übergebene Nachricht erscheint sogleich auf der Konsole, in der »mosquitto_sub« auf Daten wartet.
Bestechend einfach, oder nicht? In der täglichen Anwendung sind die Topics oft hierarchisch gegliedert, wobei der Benutzer die Hierarchie-Ebenen durch einen Schrägstrich trennt, etwa »Messwerte/Luftfeuchte/aussen«. Absichern kann ich die Kommunikation per TLS, außerdem darf ich konfigurieren, dass Server und Client sich per Zertifikat ausweisen müssen. Ich gebe zu: Mosquitto ist eine nützliche Mücke. Mein Atlas bleibt trotzdem da, wo er ist!

Abbildung 1: In der oberen Konsole schickt ein Client eine Nachricht, die ein anderer Client – in der Konsole unten – sogleich empfängt.
Infos
- Mosquitto: https://mosquitto.org





