Ich habe Node-Red diese Woche einen kurzen Testlauf gegeben. Mir ist nicht klar, ob es Flows unterstützt, die mehr als eine Anfrage umfassen. Verfügt Node-Red über ein Request-per-Flow- oder ein Session-per-Flow-Modell?
Nachdem ich mit datenflussbasierten Programmiertools für die Geschäftsprozessmodellierung (webMethods und Tibco) gearbeitet habe, sehe ich eine ihrer Hauptfunktionen in der Fähigkeit, Sitzungen und Workflows zu modellieren. Diese Tools sind jedoch für die meisten IoT-Projekte ziemlich umfangreich. Daher wäre es großartig, wenn mit Node-Red etwas Ähnliches erreicht werden könnte.
Eine weitere Frage für den Fall, dass Node-Red dies nicht unterstützt, ist, ob es einige einfache Tools gibt, die die grafische Modellierung von Sitzungsabläufen unterstützen.
quelle
Antworten:
Die Antwort ist nein und ja.
Flows in Node-Red sind ziemlich statisch. Es gibt keine Vorstellung davon, einen Flow zu instanziieren, wenn die ersten Anforderungen eingehen, sodass Sie möglicherweise eine Instanz eines Flows pro Anforderung haben.
Es gibt auch keinen integrierten Begriff für eine Sitzung, mit dem Sie Nachrichten, die durch Flüsse fließen, einer Sitzung zuordnen können.
Sie können diese Dinge jedoch relativ einfach selbst konstruieren. Node-Red bietet eine Vorstellung von Flow und globalem Status, auf die mit den Objekten
flow
und zugegriffen wirdglobal
(siehe https://nodered.org/docs/writing-functions#storing-data) . Sie würden ein Cookie an Clients senden und dann eine eingehende Anforderung explizit mit dem gespeicherten globalen Status oder dem Flow-Status verknüpfen. Sie können dann Code schreiben, der basierend auf dem gespeicherten Sitzungsstatus "sitzungsbewusst" ist. Dies funktioniert gut in Funktionsknoten, aber Sie werden auf einige Probleme mit den integrierten Knoten stoßen, die Dinge wie Ratenbegrenzung oder Split & Merge-Nachrichten ausführen, da diese den Sitzungsbegriff im Allgemeinen nicht kennen.Im Pizza-Beispiel würden Sie den Status einer Bestellung im Ablauf oder im globalen Kontext beibehalten und auf den Status der entsprechenden Bestellung basierend auf dem Cookie-Wert zugreifen.
quelle
Kurze Antwort ist ja , zumindest gemäß dieser Funktionsanforderung :
Diese Anforderung wird mit einem Commit geschlossen, das angibt, dass ein Web-Socket-Knoten hinzugefügt wurde, der auf einem Sitzungstoken basiert.
quelle