Altova MobileTogether Designer

Aktionen bei Empfang einer Nachricht

Zur Startseite Zurück Nach oben Weiter

Nachdem für eine Lösung ein Thema bei einem Broker abonniert wurde, erhält die Lösung vom Broker Nachrichten, die zu diesem Thema veröffentlicht wurden. Die Nachrichtendaten (der zuletzt empfangenen Nachricht) werden in der Seitenquelle $MT_MQTT gespeichert und können von hier abgerufen werden. Die Aktionen, die bei Empfang einer Nachricht durchgeführt werden sollen, werden für Ereignisse auf einer von zwei Ebenen definiert: (i) ein Ereignis auf Seitenebene für eine einzelne Seite, (ii) ein Ereignis auf Ebene der Lösung (oder des Projekts) (wird über den Abschnitt Projekteigenschaften des Fensters Stile & Eigenschaften aufgerufen). Wenn für das Ereignis der aktiven Seite auf Seitenebene keine Ereignisbehandlung definiert ist, werden die Aktionen des Ereignisses auf Projektebene ausgeführt.

 

In diesem Kapitel werden folgende Punkte erläutert:

 

die $MT_MQTT-Seitenquelle

die Ereignisse, je eines auf Seitenebene und eines auf Lösungsebene, die bei Empfang einer Nachricht ausgelöst werden

 

$MT_MQTT-Seitenquelle

Die Seitenquelle $MT_MQTT hat die folgende fixe Struktur:

 

$MT_MQTT

Root

|-- Message

|      @topic

|      @content

 

Nachdem für eine Lösung ein Thema bei einem Broker abonniert wurde, erhält die Lösung vom Broker zur Laufzeit Nachrichten, die zu diesem Thema veröffentlicht wurden. Wie oft Nachrichten von der Lösung wiederholt empfangen werden sollen, hängt von dem im Abonnement definierten Quality of Service-Grad ab.

 

Die zuletzt empfangene Nachricht wird in der Seitenquelle $MT_MQTT gespeichert, wobei der Textkörper der Nachricht im Node $MT_MQTT/Root/Message/@content und der Name des Themas im Node $MT_MQTT/Root/Message/@topic gespeichert wird. Die Nachrichtendaten in der Seitenquelle können nun von der Lösung aufgerufen und für die Datenverarbeitung verwendet werden.

 

Anmerkung:Der Inhalt jeder erhaltenen Nachricht wird von MobileTogether automatisch in einen hexBinary-String konvertiert und in diesem Format im Node $MT_MQTT/Root/Message/@content gespeichert. Um den hexBinary-String in einen Textstring zu konvertieren, verwenden Sie die Funktion mt-hexBinary-to-string. MobileTogether bietet zwei Funktionen für die Konvertierung zwischen hexBinary-Strings und Strings: mt-hexBinary-to-string und mt-string-to-hexBinary.

 

Beim Empfang einer Nachricht ausgelöste Ereignisse

Wenn eine Lösung eine Nachricht empfängt, wird das Bei MQTT-Empfang-Ereignis ausgelöst. Sie können definieren, welche Aktionen bei Auslösung dieses Ereignis ausgeführt werden sollen.

 

Wenn auf Seitenebene Bei MQTT-Empfang-Ereignisaktionen definiert wurden, so werden diese Aktionen ausgeführt, wenn diese Seite aktiv ist und eine Nachricht empfängt.

Wenn auf Seitenebene keine Bei MQTT-Empfang-Ereignisaktion definiert wurde, werden etwaige auf Projektebene definierte Bei MQTT-Empfang-Ereignisaktionen ausgeführt..

 

Dadurch können Sie Aktionen auf Projektebene definieren, die bei jeder aktiven Seite, für die keine eigenen OnMQTTReceive-Ereignisaktionen auf Seitenebene definiert sind, ausgelöst werden.

 

© 2017-2023 Altova GmbH