Message flow
Last updated
Last updated
Nu je de basis van NodeRed beheerst gaan we in deze volgende stap wat dieper. Het is belangrijk te begrijpen dat in NodeRed de berichtenstroom (message-flow) bepaalt wat er gebeurt, berichten worden tussen nodes doorgegeven.
Om dit duidelijker te maken gebruiken we het volgende voorbeeld. Maak je werkblad leeg (je kunt alle objecten op je werkblad selecteren door met je linkermuisknop ingedrukt een vierkant om alle nodes te trekken, of met CTRL-A ineens alles selecteren, verwijderen door op Delete te drukken) om met een nieuwe te beginnen, of voeg een extra Flow-tab toe (dat doe je bovenaan je werkblad).
Maak de volgende flow:
Dubbelklik daarna op de function node om de volgende functie in te voeren:
Je kunt de function node een naam geven, zoals ik in bovenstaand voorbeeld heb gedaan, dit hoeft niet. Als je klaar bent, druk op de rode Done knop. Selecteer alvast het Debug window en druk op Deploy om te code uite te laten voeren. Als je nu op de knop links van de Inject node (die nu timestamp heet, weet je nog?) drukt, zul je zien dat in het debug window de getallen 0 t/m 99 voorbij komen.
Dit is te verklaren met de JavaScript code die je in de functie node hebt geschreven, een simpele for-loop die van 0 tot 100 telt (TOT 100, niet TOT-EN-MET 100!).
Verander nu de flow door er een delay node aan toe te voegen, zodat deze er als volgt uitziet:
Dubbelklik op de delay node en verander de settings als volgt:
Als je klaar bent, druk op de rode Done knop. Druk daarna op Deploy om te code uite te laten voeren. Je kunt het debug window leeg maken door op het prullenbakje rechtsboven te drukken. Druk daarna op de knop links van de Inject node om de flow te starten, je ziet dat de messages nu 1 per seconde binnen komen in het debug-window.
Wat er nu gebeurt is dat alle berichten vanuit de (Teller-) functie node worden verstuurd naar de volgende node, de delay node, en die laat er maar 1 per seconde door. Met de volgende flow kun je dit nog verder onderzoeken:
Druk op Deploy, maak het debug window leeg en start de flow door op de knop links van de Inject node te drukken. Nu zie je het effect dat er twee datastromen aankomen in het debug window, de eerste met 1 tot 100 snel achter elkaar, de tweede met 1 tot 100 met 1 seconde interval.