2016-08-08 21 views
0

Wie wäre es möglich, eine automatische Antwort zu erstellen, wenn eine Nachricht vom Knoten 020110 kommt, die wieder in das Netzwerk injiziert wird, in diesem Sinne würde ich gerne ein Paket an den abgebildeten Block Server im folgenden Schema senden rote Linie ist die, die ich noch machen muss. mit TriggerfunktionWie erstelle ich eine automatische Antwort in Node-Rot, wenn eine eingehende Nachricht?

enter image description here

Wie es zu sehen ist, bekomme ich einen Feed aus einem Sensor, und ich möchte eine Nachricht zurück an das Netzwerk kommt 02.010.110 auf den Knoten etwas jedes Mal senden. Allerdings habe ich mit einem Problem konfrontiert, wenn ich direkt diese zwei Knoten (rote Linie) verbinden, kann ich sehen, wie der Browser extrem langsam wird und die Debug-Terminal von Node-rot es gibt eine Menge von Nachrichten an die gesendet werden Trigger-Block, so denke ich, dass es bestimmten Punkt kann sie nicht bewältigen. Der Knoten sendet nur Daten alle 5s.

Also, ich frage mich, ob ein Beispiel, Bibliothek oder Ansatz, dies in Knoten rot zu tun ist.

Antwort

0

Mit MQTT, wenn ein Client das gleiche Thema abonniert hat, auf dem es veröffentlicht wird, werden ihm eigene Nachrichten zurückgeliefert.

Also, wenn Sie eine Nachricht zu dem gleichen Thema für jede eingehende Nachricht veröffentlichen Ihre einfach weiter um die Schleife gehen Verarbeitung der Antwort als eine neue Nachricht und senden eine neue Antwort.

Wenn Sie eine "Antwort" senden möchten (beachten Sie, es gibt kein direktes Konzept von 1 zu 1 Messaging in MQTT, es ist in der Regel 1 zu viele) Nachricht sollten Sie es an ein anderes Thema senden. Für die eingehende Nachricht wird das Themenfeld bereits über den MQTT-Subscribe-Knoten festgelegt. Sie können dies im Funktionsknoten ändern, bevor Sie es an den MQTT-Veröffentlichungsknoten senden.

Ein Ansatz kann darin bestehen, nach dem MQTT Subscribe-Knoten einen Vermittlungsknoten einzubeziehen, um die Antwortnachrichten herauszufiltern, wenn sie leicht identifiziert werden können.

+0

Ich verstehe, was Sie Hardlib erwähnen, ich frage mich mehr, wenn der Trigger-Block in Node-Rot ist die mit diesem Ziel entworfen, weil ich eine neue Nachricht/Payload und keine eingehende vom Knoten senden will. Ich habe gesehen, dass der Trigger-Block nur String erlaubt, aber keine eigene Payload definiert. – ndarkness

+0

Der Trigger-Knoten wird die Dinge noch schlimmer machen, da er 2 Nachrichten mit einer bestimmten Verzögerung zwischen ihnen für jede Nachricht sendet, die er empfängt. Sie haben beide das gleiche Thema wie die ursprüngliche Nachricht. Wenn Sie dies also mit einem MQTT-Veröffentlichungsknoten verbinden, erhalten Sie zwei Nachrichten auf dem Teilnehmerknoten zurück, was dazu führt, dass 4 Nachrichten veröffentlicht werden und so jedes Mal mehr erhalten der Nachrichten löst einen Reset aus. – hardillb

+0

wie kann ich dann eine Antwort zurücksenden, wenn etwas von diesem Thema kommt? – ndarkness