# Subscriptions

## **Subscriptions (Abonnements)**

*Verfügbar seit TBMQ Version 2.0*

In MQTT ist ein *Subscription*‑Eintrag ein Mechanismus, der es Clients ermöglicht, Nachrichten zu empfangen, die für bestimmte Topics bestimmt sind. Wenn ein Client ein Topic abonniert, signalisiert er damit sein Interesse daran, alle Nachrichten zu erhalten, die auf dieses Topic publiziert werden.

<div id="bkmrk-">---

</div>## **Tabelle: Subscriptions**

Auf der Seite **Subscriptions** können alle Abonnements des Brokers beobachtet, analysiert oder gefiltert werden. Die Tabelle enthält folgende Informationen zu jedem einzelnen Subscription‑Eintrag:

<div id="bkmrk-client-id-%E2%80%93-die-kenn">- **Client ID** – Die Kennung des Clients, der Eigentümer des Abonnements ist.
- **Topic Filter** – Der MQTT‑Topic‑Filter.
- **QoS** – *Quality of Service* des Abonnements.
- **Retain as Published** – Wenn „true“, behalten weitergeleitete Nachrichten das RETAIN‑Flag, mit dem sie ursprünglich veröffentlicht wurden.
- **Retain Handling** – Bestimmt, wie der Broker Retained Messages behandelt, wenn ein Client ein Topic abonniert: 
    - 0 – Retained Messages beim Abonnieren senden
    - **1** – Retained Messages beim Abonnieren senden, sofern das Abo noch nicht existiert
    - **2** – Keine Retained Messages beim Abonnieren senden
- **No Local** – Wenn „true“, sendet der Broker Nachrichten dieses Clients nicht zurück auf die Verbindung, über die das Abonnement erfolgt ist.
- **Subscription Identifier** – Eindeutiger numerischer Wert, der dem Abonnement zugeordnet ist. Er ermöglicht es dem Client, Nachrichten unterschiedlicher Abonnements zu unterscheiden.

</div>Die Subscriptions‑Tabelle zeigt alle aktuellen Abonnements des Brokers an.  
Das **Filter**‑Fenster ermöglicht eine einfache Filterung der Tabelle nach jeder Spalte.

[![image.png](https://dokumentation.iot-hub.solutions//uploads/images/gallery/2026-01/scaled-1680-/sLnimage.png)](https://dokumentation.iot-hub.solutions//uploads/images/gallery/2026-01/sLnimage.png)

<div id="bkmrk--2">---

</div>## **Subscriptions verwalten**

Abonnements können direkt im Fenster **Session details** hinzugefügt, entfernt oder bearbeitet werden.

**Vorgehen:**

<div id="bkmrk-%C3%96ffnen-sie-im-linken">1. Öffnen Sie im linken Menü die Seite **Subscriptions**.
2. Klicken Sie auf einen Eintrag um die **Session details** zu öffnen
3. Öffnen Sie den Tab **Subscriptions**, um die Session-Abonnements zu verwalten.
4. Fügen Sie Abonnements hinzu, bearbeiten oder löschen Sie diese.
5. Klicken Sie auf **Update**, um Änderungen zu speichern.

</div><div id="bkmrk--3">---

</div>## **Subscriptions Chart**

Auf den Seiten **Monitoring** und **Home** können Sie die Anzahl aktueller Abonnements und weitere Broker‑Aktivitäten nachverfolgen.

<div id="bkmrk--4">---

</div>## **Leeren von Subscription‑Knoten**

Subscriptions werden im Broker in einer **Trie**‑Datenstruktur gespeichert, die besonders effiziente Suchvorgänge ermöglicht.  
Ein Trie (oder Präfixbaum) ordnet Topic‑Filter hierarchisch, wobei jeder Knoten eine Topic‑Ebene repräsentiert.  
Der Broker kann dadurch anhand eines publizierten Topic‑Namens schnell die zugehörigen Client‑Abonnements finden – was die Performance deutlich verbessert.

Wenn ein Client ein Abonnement entfernt (*unsubscribe*), löscht der Broker die Daten aus dem Speicher und markiert den entsprechenden Knoten als „leer“.  
Mit der Zeit können sich viele solcher leeren Knoten ansammeln, was:

<div id="bkmrk-speicher-verschwende">- Speicher verschwendet
- die Verarbeitung von Abgleichvorgängen (Subscription Matching) verlangsamen kann

</div>Das Bereinigen leerer Knoten gibt Speicher frei und beschleunigt die Verarbeitung.

**Leere Subscription‑Knoten löschen:**  
Klicken Sie oben rechts auf die Schaltfläche **Clear empty subscription nodes** (Papierkorb‑Symbol) und bestätigen Sie die Aktion.