TsgcWSPClient_MQTT | MQTT Topics

Topics

In MQTT bezieht sich das Wort Topic auf eine UTF-8-Zeichenkette, die der Broker verwendet, um Nachrichten für jeden verbundenen Client zu filtern. Das Topic besteht aus einer oder mehreren Topic-Ebenen. Jede Topic-Ebene wird durch einen Schrägstrich getrennt (Topic-Ebenen-Trennzeichen)

 

myHome / groundfloor / livingroom / temperature

 

Im Vergleich zu einer Nachrichtenwarteschlange sind MQTT-Themen sehr leichtgewichtig. Der Client muss das gewünschte Thema nicht erstellen, bevor er es veröffentlicht oder abonniert. Der Broker akzeptiert jedes gültige Thema ohne vorherige Initialisierung. Beachten Sie, dass jedes Thema mindestens 1 Zeichen enthalten muss und dass die Themen-Zeichenkette Leerzeichen zulässt. Themen unterscheiden Groß- und Kleinschreibung.

 

 

WildCards

Wenn ein Client ein Topic abonniert, kann er das exakte Topic einer veröffentlichten Nachricht abonnieren, oder er kann Platzhalter verwenden, um mehrere Topics gleichzeitig zu abonnieren. Ein Platzhalter kann nur zum Abonnieren von Topics verwendet werden, nicht zum Veröffentlichen einer Nachricht. Es gibt zwei verschiedene Arten von Platzhaltern: _single-level und _multi-level.

 

Single Level: +

Wie der Name schon sagt, ersetzt ein Single-Level-Platzhalter eine Topic-Ebene. Das Plus-Symbol repräsentiert einen Single-Level-Platzhalter in einem Topic.

 

myHome / groundfloor / + / temperature

 

Jedes Topic stimmt mit einem Topic mit Single-Level-Wildcard überein, wenn es eine beliebige Zeichenfolge anstelle der Wildcard enthält. Zum Beispiel kann ein Abonnement von _myhome/groundfloor/+/temperature die folgenden Ergebnisse erzeugen:

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

NO => myHome / groundfloor / livingroom / brightness

NO => myHome / firstfloor / livingroom / temperature

NEIN => myHome / groundfloor / kitchen / fridge / temperature

 

Multi Level: #

Der mehrstufige Platzhalter deckt viele Themenebenen ab. Das Rautensymbol stellt den mehrstufigen Platzhalter im Thema dar. Damit der Broker bestimmen kann, welche Themen übereinstimmen, muss der mehrstufige Platzhalter als letztes Zeichen im Thema platziert und von einem Schrägstrich vorangestellt werden.

 

myHome / groundfloor / #

 

YES => myHome / groundfloor / livingroom / temperature

YES => myHome / groundfloor / kitchen / temperature

YES => myHome / groundfloor / kitchen / brightness

NEIN => myHome / firstfloor / kitchen / temperature

 

Wenn ein Client ein Thema mit einem mehrstufigen Platzhalter abonniert, empfängt er alle Nachrichten eines Themas, das mit dem Muster vor dem Platzhalterzeichen beginnt, unabhängig davon, wie lang oder tief das Thema ist. Wenn Sie nur den mehrstufigen Platzhalter als Thema angeben (_#), empfangen Sie alle Nachrichten, die an den MQTT-Broker gesendet werden.