MQTT Subscriber
Dieser Adapter ermöglicht das Abonnieren eines Topics in einem MQTT-Broker.
Das MQTT-Protokoll bietet eine einfache Methode zur Nachrichtenübermittlung über ein Publish/Subscribe-Modell. Damit eignet es sich besonders für die Nachrichtenübermittlung im Umfeld des Internet der Dinge, wie z. B. bei Sensoren mit niedriger Leistung oder mobilen Geräten wie Telefonen, eingebetteten Computern oder Mikrocontrollern.
Hinweis:
Der MQTT Subscriber wird meist in Verbindung mit dem MQTT Publisher verwendet.
Eigenschaften (Properties)
Operation | Vom Adapter ausgeführte Operation Mögliche Werte:
|
Parameter
Adapter | Adapter-Hauptklasse (nicht verändern!) Mögliche Werte: de.softproject.integration.adapter. mqtt.MqttSubscriberAdapter: Hauptklasse (Standard) |
Alias | Broker-Alias Mögliche Werte:
Der Alias kann innerhalb der Konfigurationsdatei |
ClientId | Bezeichner für den Client, der den Broker abonniert Mögliche Werte:
Die Client ID kann innerhalb der Konfigurationsdatei |
clientTimeout | Timeout für ONLINE_ON_DEMAND-Verbindungen (für die Operation Mögliche Werte: Ganzzahl größer als |
connectionMode | Verbindungsmodus, der zum Erstellen des Clients ausgewählt wurde. Abhängig vom gewählten Wert bleibt die Client-Verbindung erhalten oder wird nach einer bestimmten Zeit wieder getrennt ( Mögliche Werte:
Dieser Parameter wird nicht benötigt, wenn |
stateful | Legt fest, ob der Zustand zwischen dem Client und dem Broker zustandsorientiert ist. Mögliche Werte: Dieser Parameter wird nicht benötigt, wenn |
keystorePath | Pfad zum Keystore. Wenn keine SSL/TLS-Konfiguration benötigt wird, um eine Verbindung zum Broker herzustellen, dann kann der Parameterwert leer sein. Mögliche Werte: Dateipfad Dieser Parameter wird nicht benötigt, wenn |
keystorePassword | Passwort zum für Mögliche Werte: Beliebige Zeichenkette Dieser Parameter wird nicht benötigt, wenn |
Topic | Name des Topics, das der Client abonniert Mögliche Werte: Beliebige Zeichenkette Das Topic kann innerhalb der Konfigurationsdatei |
server | Protokoll, Host und Port für die Verbindung vom Client zum Broker. Mögliche Werte:
Dieser Parameter wird nicht benötigt, wenn |
InputFormat | Input-Format des Adapters Mögliche Werte:
|
loginUsername | Username, der verwendet wird, um eine Verbindung zu einem Broker herzustellen, der Zugangsdaten verlangt. Mögliche Werte: Benutzername Dieser Parameter wird nicht benötigt, wenn |
loginPassword | Passwort, das verwendet wird, um eine Verbindung zu einem Broker herzustellen, der Zugangsdaten verlangt. Mögliche Werte: Passwort Dieser Parameter wird nicht benötigt, wenn |
QoS | Quality of Service, für den Nachrichtenempfang beim Abonnement eines Topics. Mögliche Werte:
Dieser Parameter wird nicht benötigt, wenn |
Process | Pfad zum Prozess, der jedes Mal ausgeführt wird, wenn eine Nachricht des abonnierten Topics empfangen wurde Mögliche Werte: Prozess-Pfad im Format |
Statuswerte
1 | Die Operation wurde erfolgreich ausgeführt. |
-1 | Es gab einen Fehler während des Verbindungsaufbaus, der Trennung der Verbindung, der Veröffentlichung oder dem Abonnieren |
Input
Der Adapter erwartet kein Input-Dokument.
Output
Die Ausgabe entspricht dem Input.
Konfigurationsdatei
Um Broker, Client, SSL/TLS-Konfigurationen usw. zu definieren, kann eine Konfigurationsdatei mit einer festgelegten Struktur verwendet werden, die beim Serverstart geladen wird. Die Konfigurationsdatei mqttconfig.xml
muss unter dem Serverpfad X4DB/0
abgelegt werden. Wenn Broker und Client in der Konfigurationsdatei definiert sind, dann müssen in den Adapterparametern nur die Werte für alias
und cliendId
angegeben werden.
Die Datei enthält folgende Informationen:
KeyStore | Pfad und Passwort des Keystores, der verwendet wird, um eine SSL-Verbindung zum Broker aufzubauen. Ist dieses optionale Element nicht angegeben, wird ein Trust-Manager angelegt, der alle Zertifikate annimmt. Bei der Pfadangabe können sowohl absolute als auch relative Pfade zum Verzeichnis Beispiel: Relative Pfadangabe
XML
Absolute Pfadangabe
XML
|
---|---|
Broker | MQTT-Server Relevante Informationen werden im Attribut
|
Topic | Topic das abonniert werden kann, um die veröffentlichte Nachricht zu erhalten. Es hat folgende Attribute:
|
Beispiel-Konfiguration
<?xml version='1.0' encoding='UTF-8'?>
<RootElement>
<!-- Both, relative and absolute paths to X4DB/0 are allowed -->
<KeyStore password="password">C:/Users/MaxMustermann/Documents/MQTT/Keystore/application.keystore</KeyStore>
<Broker alias="Mosquitto_MQTT">
<Server>ssl://localhost:8883</Server>
<ClientId mode="ALWAYS_ONLINE_ON_STARTUP">C1</ClientId>
<ClientId mode="ALWAYS_ONLINE_ON_FIRST_PUBLISH">C2</ClientId>
<ClientId timeout="40" mode="ONLINE_ON_DEMAND">C3</ClientId>
<ClientId timeout="20" mode="ONLINE_ON_DEMAND">C4</ClientId>
<Topic filter="topic/action1" qos="AT_LEAST_ONCE">
<Process url="x4db://1/X4Experience/ESB/3-Reference/1-AdapterSuites/X4MQTTAdapter/Processes/TopicProcesses/ProcessTopic1.wrf"/>
</Topic>
<Topic filter="topic/action2" qos="AT_MOST_ONCE">
<Process url="x4db://1/X4Experience/ESB/3-Reference/1-AdapterSuites/X4MQTTAdapter/Processes/TopicProcesses/ProcessTopic2.wrf"/>
</Topic>
<Topic filter="topic/action1" qos="EXACTLY_ONCE">
<Process url="x4db://1/X4Experience/ESB/3-Reference/1-AdapterSuites/X4MQTTAdapter/Processes/TopicProcesses/ProcessTopic3.wrf"/>
</Topic>
</Broker>
</RootElement>