MQTT Publisher
Dieser Adapter ermöglicht das Veröffentlichen von Nachrichten 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 Publisher wird meist in Verbindung mit dem MQTT Subscriber 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.MqttPublisherAdapter: Hauptklasse (Standard) |
Alias | Broker-Alias Mögliche Werte: Beliebige Zeichenkette Der Alias kann innerhalb der Konfigurationsdatei |
ClientId | Bezeichner für den Client, der im Broker veröffentlicht Mögliche Werte:
Die Client ID kann innerhalb der Konfigurationsdatei |
clientTimeout | Timeout für 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, in dem der Client veröffentlicht 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 |
retained | Legt fest, ob die veröffentlichte Nachricht zu dem bestimmten Thema aufbewahrt und im Broker gespeichert wird. Jeder Client, der dieses Thema abonniert, erhält die aufbewahrte Nachricht sofort nach dem Abonnieren. Mögliche Werte: |
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
Für die Operation Publish
erwartet der Adapter ein beliebiges 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>