Wenn die Verbindung plötzlich abbricht

Wenn ein Client keine aktive Verbindung zum Broker hat und eine neue Nachricht auf einem Topic aufläuft, auf welches der Client ein Abonnement hält, so verpasst er diese Nachricht. Anders sieht es aus, wenn der Sender beim Senden der Nachricht das sogenannte Retain-Flag für die Nachricht gesetzt hat. In diesem Fall stellt der Broker die Nachricht später noch zu.

Stellenmarkt
  1. Referent (m/w/d) für Datenstrategie und Data Literacy
    Amprion GmbH, Dortmund
  2. IT-Mitarbeiter (m/w/d) First Level Support
    Knappschaft Kliniken Service GmbH, Bochum
Detailsuche

Für den Fall, dass die Verbindung vom Client nicht beendet wird bzw. beendet werden kann, existiert in MQTT ein sogenanntes Testament. So kann es bei Sensoren, die über Batterien gespeist sind, durchaus vorkommen, dass die Verbindung plötzlich abbricht.

Deshalb kann ein Client ein Testament, eine Nachricht auf ein Topic, hinterlegen, welche im Falle des Verbindungsabbruches vom Broker über das Topic versendet wird.

In der Praxis existieren zwei Versionen von MQTT: MQTT 3, das die größte Basis besitzt, und MQTT 5, das mit einigen Neuerungen aufwarten kann, um das Protokoll fit für die Zukunft zu machen. Spezifiziert wird MQTT von OASIS, der Organization for the Advancement of Structured Information Standards.

Golem Karrierewelt
  1. Azure und AWS Cloudnutzung absichern: virtueller Zwei-Tage-Workshop
    22./23.09.2022, virtuell
  2. Hands-on C# Programmierung: virtueller Zwei-Tage-Workshop
    09./10.06.2022, virtuell
Weitere IT-Trainings

Die größten Unterschiede zwischen der letzten 3er-Version 3.1.1 und 5 sind Shared Subscriptions, welche Load Balancing auf Client-Seite erlauben, Negative Acks, eine Art Statuscodes ähnlich den HTTP-Statuscodes, und User Properties, bei denen es sich um die Entsprechung zu den HTTP-Headern handelt. Diese können unter anderem für Metadaten genutzt werden. Ergeben haben sich diese Neuerungen hauptsächlich durch die Rückmeldungen aus der Community über die letzten Jahre.

  • Die MQTT-Architektur (Bild: Florian Bottke, Screenshot: Golem.de)
  • Die Kommunikation zwischen Client und Broker (Bild: Florian Bottke, Screenshot: Golem.de)
  • Das OSI-Modell (Bild: Florian Bottke, Screenshot: Golem.de)
  • MQTTBox unter Mac OS (Bild: Florian Bottke, Screenshot: Golem.de)
Das OSI-Modell (Bild: Florian Bottke, Screenshot: Golem.de)

Technisch basiert das MQTT-Protokoll auf TCP/IP. Dabei werden die Ports 1883 und 8883 genutzt. Der erste Port ist für die unverschlüsselte, der zweite Port für die verschlüsselte Kommunikation reserviert. Im OSI-Schichtenmodell befindet sich MQTT, wie HTTP, auf dem Application Layer (OSI Layer 7). Im Gegensatz zu HTTP bleibt die Verbindung bei MQTT auch bestehen, wenn keine Daten übertragen werden.

Gestartet wird die Kommunikation des Clients mit einer CONNECT-Nachricht, woraufhin der Broker das Ganze mit einer CONNACK-Nachricht bestätigt. Nun kann der Client Topics abonnieren und Informationen zu einem Topic senden (PUBLISH).

MQTT beherrscht drei verschiedene Stufen des Quality of Service (QoS). Stufe 0 ist vom Modell her Fire-and-Forgot; die Nachricht wird einmal versendet und danach vom Broker vergessen. Ob sie ankommt, ist auf dieser QoS-Stufe nicht relevant.

Bei Stufe 1 garantiert der Broker, dass die Nachricht mindestens einmal zugestellt wird, sie kann aber durchaus auch mehrfach bei den Clients ankommen. Stufe 2 hingegen garantiert, dass die Nachricht exakt einmal ankommt. Offiziell sind die QoS-Stufen wie folgt benannt:

At most once (0)
At least once (1)
Exactly once (2)

Je nach gewählter QoS-Stufe kommt es zu vermehrter Kommunikation über das MQTT-Protokoll.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Einführung in MQTT: Alles läuft über den BrokerDrei unterschiedliche Qualitätsstufen 
  1.  
  2. 1
  3. 2
  4. 3
  5.  


Smolo 20. Jan 2022

So schlimm würde ich das jetzt nicht bezeichnen. Ich bin schon ein großer Freund von...

Bernte 19. Jan 2022

Vielen Dank für diese Liste! Einen SMA Wechselrichter und einen Node Red Pi habe ich...

Zombieanfuehrer 18. Jan 2022

Vielen Dank! :)

FlashBFE 18. Jan 2022

Wie der Artikel schon richtig beginnt, gibt es Protokolle wie Sand am Meer. Und hier wird...



Aktuell auf der Startseite von Golem.de
Ukrainekrieg
Erster Einsatz einer US-Kamikazedrohne dokumentiert

Eine Switchblade-Drohne hat offenbar einen russischen Panzer getroffen. Dessen Besatzung soll sich auf dem Turm mit Alkohol vergnügt haben.

Ukrainekrieg: Erster Einsatz einer US-Kamikazedrohne dokumentiert
Artikel
  1. Deutsche Bahn: 9-Euro-Ticket gilt nicht in allen Nahverkehrszügen
    Deutsche Bahn
    9-Euro-Ticket gilt nicht in allen Nahverkehrszügen

    So einfach ist es dann noch nicht: Das 9-Euro-Ticket gilt nicht in allen Zügen, die mit einem Nahverkehrsticket genutzt werden können.

  2. Verifone: Bundesweite Störung von Girokarten-Terminals
    Verifone
    Bundesweite Störung von Girokarten-Terminals

    In vielen Geschäften lässt sich derzeit nur bar bezahlen. Ursache ist wohl ein Softwarefehler in Kartenzahlungsterminals für Giro- und Kreditkarten.

  3. Recht auf Vergessenwerden: Verurteilter Raubmörder gewinnt Klage gegen Google
    Recht auf Vergessenwerden
    Verurteilter Raubmörder gewinnt Klage gegen Google

    Das Recht auf Vergessenwerden gilt auch für Raubmörder. Google muss einen Link auf einen Online-Artikel entfernen.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Days of Play: (u. a. PS5-Controller (alle Farben) günstig wie nie: 49,99€, PS5-Headset Sony Pulse 3D günstig wie nie: 79,99€) • Viewsonic Gaming-Monitore günstiger • Mindstar (u. a. MSI RTX 3090 24GB 1.599€) • Xbox Series X bestellbar • Samsung SSD 1TB 79€ [Werbung]
    •  /