بناء التدفق الأول (Hello World):
سنقوم في البدء لبناء التدفق الأول الخاص بك بحيث يمكنك أن ترى كم هو بسيط استخدام واجهة مستخدم الـ Node-RED لبناء و نشر التدفق.
دعونا نبدأ من أسهل تدفق محتمل ، سيتم استخدام عقدة لضخ المعلومات في التدفق تدعى (inject node) ، يتم توصيل هذة العقدة إلى عقدة debug لرؤية الناتج من التدفق كرسالة .
بعد وضع عقدة التعليق (comment Node )على مساحة العمل ، نلقي نظرة على لوحة الخراج عند تويب (info)المعلومات في الجانب الأيمن ( قم بالتحويل إلى تبويب info اذا كانت علامة التويب debug ) . سترى القليل من المعلومات حول العقدة ، بما في ذلك اسم/ نوع العقدة ، و unique ID ، و حقل الخصائص مع وصفا للعقدة. بالنسبه لعقدة التعليق ليس لديها الكثير ليتم وصفه.
انقر نقرا مزدوجا فوق عقدة التعليق، وسيظهر لك نافذة الإعداد كما في الشكل التالي ، يمكنك إعطاء عقدة التعليق اسم و إضافة نص منفصل إذا أردت.
الآن سنقوم بإضافة العقدة الأولى عقدة inject . عقدة inject يتم استخدامها لتوليد الدخل في التدفق وهي العقدة الأولى من العقد في لوحة العقد تحت قسم الإدخال (input) . قم بسحب و إسقاط عقدة inject على مساحة عمل التدفق ، ثم قم بالنظر إلى علامة التبويب معلومات (info) ، سترى معلومات ووصف للعقدة inject . لاحظ ان اسم العقدة يتغير عند وضعها على مساحة العمل من inject إلى timestamp .
ستلاحظ أيضا أن عقدة inject التي تسمى الأن (timestamp) لديها نقطة زرقاء أعلى اليمين ومربع رمادي في وسط الجانب الأيمن . تشير النقطة الزرقاء أن العقدة لم يتم نشرها لأنه طرأ تغيير عليها. و المربع الرمادي هو نقطة إنتاج/إخراج العقدة. ومن هذا المربع يتم ربط عقدة inject ليتم تدفق الرسالة المنتجة إلى العقدة التالية بالتدفق .
دعونا نضيف عقدة debug سنقوم بربط هذة العقدة مع العقدة السابقة ، وبعد ذلك نقوم بنشر التدفق و اختباره.
قم بسحب عقدة debug من لوحة العقد تحت قسم المخراجات (output) إلى ساحة العمل . مرة أخرى يمكنك الإطلاع على معلومات العقدة في الجزأ الأيمن للواجهة.
ثم قم بربط عقدة debug مع العقدة السابقة معا. للقيام بذلك، انقر على نقطة الإنتاج الرمادية لعقدة inject ، ثم قم بسحب السلك لعقدة debug .
هذا هو ابسط تدفق ممكن، سوف يتم ارسال الزمن الحالي إلى عقدة debug لعرضه على لوحة debug . قم بالضغط على زر النشر deploy في نافذة Node-RED أعلى اليمين ، ستظهر لك نافذة تخبرك أنه تم نشر التدفق بنجاح (The Flow has been successfully deployed) كما هو موضح بالصورة ادناه . و ستلاحظ أن النقطة الزرقاء أعلى يمين العقد لم تعد تظهر.
قبل أن يتم اختبار التدفق ، تأكد من اختيار علامة التبويب debug على يمين النافذة . ثم قم بنقر زر التبويب على الجزأ الأيسر لعقدة inject ثم لاحظ ماذا سيظهر على لوحة debug يمن النافذة.
كما ترون، عقدة inject ، عند النقر عليها تولد الطابع الزمني (timestamp) ( عدد المللي ثانية ) ، والتي يتم تحويلها إلى رسالة و ارسالها على طول سلك الإخراج، ثم يتم تسليمها إلى عقدة debug كرسالة مدخلة. السلوك الإفتراضي لعقدة debug هي إظهار أي رسالة تتلقاها.
الآن سنقوم بإظهار رسالة نصية من خلال هذا التدفق. أولا ، سنقوم بالتعديل على عقدة inject لتقوم بتسليم رسالة نصية بدلا من الطابع الزمني. للقيام بذلك، حدد عقدة inject في التدفق و انقر نقرا مزدوجا عليها . سوف تظهر لك نافذة كما هو موضح لك بالصورة التالية.
في مربع نص payload ، قم بتحديد string بدلا من الطابع الزمني (timestamp) ثم قم بكتابة اي جملة تريد داخل الحقل الفارغ حقل payload . لنبدأ مع جملة “Hello World – from my first NR flow!”
بمجرد قيامك بهذا التغيير، انقر فوق موافق (Done) لحفظ التغييرات . لنلقي نظرة على التدفق، سترى ظهور النقطة الزرقاء على عقدة inject للإشارة إلى حدوث تغييرات في التدفق لم يتم نشرها. قم بالنقر على زر deploy للنشر ثم قم بالنقر فوق علامة التبويب على عقدة inject على يسار العقدة. إذا قمت بالنظر على لوحة الإخراج debug سترى بدلا من الطابع الزمني سيتم عرض الرسالة النصية.
كما ترون، فإنه من السهل جدا ربط العقد معا و تمرير البيانات من خلال التدفق الخاص بك كرسائل. جميع الرسائل في Node-RED لها ثلاث خصائص افتراضية: payload وهو كما تم عرضها سابقا ، topic وهو موضوع الرسالة لوصف الرسالة المتدفقه ، والمعرف الداخلي. يمكنك أن ترى هذة المعلومات إذا قمت بالتعديل على عقدة debug ، كما هو موضح بالصورة أدناه .
حدد عقدة debug ثم قم بالنقر مرتيين وقم بتغير حقل output إلى ” Complete msg object ” ثم قم بحفظ التغير، قم بنشر التغير عبر زر deploy ثم قم بالضغط على عقدة inject ، سترى في لوحة الإخراج debug هيكل JSON و الذي يحتوي على ثلاث مجالات : “topic” وهو فارغ حاليا ، و payload و التي تحتوي على جملة الرسالة التي وضعتها في عقدة inject و “ID _msgid” . عموما لا يستخدم ID داخل الرسالة.