بناء التدفقات عبر البروتوكولات

مبتدئ

image_pdf

 استخدام عقدة التبديل لتوجية الرسالة اعتمادا على خصائص معينة :

أحد المميزات الموجودة لدى JSON object  أنها تتيح لك العمل بسهوله على خصائصها. سيتم استخدام عقدة التبديل (switch node)  و التي تعمل كمفتاح أو توجيه للرسائل إلى اتجاه مخرج معين اعتمادا على خصائص الرسالة الواردة . على سبيل المثال، يمكنك تفحص خصائص الحقلmsg.payload.analyze    و بالإعتماد على قيمتها (صحيحة / خاطئة ) ، تقرر توجيه الرسالة إلى أحد مخرجات عقدة التبديل (switch Node) .

قم بسحب عقدة التبديل (switch node)  ، ثم انقر نقرا مزدوجا عليها . قم بإعدادها للتحقق من قيمة الحقل msg.payload.analyze  ، إذا كانت صحيحة سنقوم بإخراج الرسالة إلى المخرج الأول لعقدة التبديل ; و إذا كانت خاطئة سنقوم بإخراج الرسالة إلى المخرج الثاني لعقدة التبديل .  قم بإعداد عقدة التبديل كما هو موضح بالصورة ادناه :

basic-nodes-and-flows

الآن  يمكنك توصيل عقدتين إخراج debug  كما هو موضح بالصورة التالية ، عند إعداد عدة مخارج للعقدة ، يتم ترقيم المخارج من أعلى ، لذلك المخرج 1 هو المخرج الأعلى و المخرج 2 هو المخرج السفلي في الشكل التالي.

basic-nodes-and-flows

قم بالرجوع إلى صفحة إدخال  HiveMQ و إرسال رسالة {MQTT  {“analyze”:true, “value”:6 ، سوف تلاحظ أنه تم تفعيل المخرج الأول على عقدة التبديل و تم توجيه الرسالة الواردة على مخرج 1  ، إذا قمت بإرسال الرسالة التي تم استخدامها مسبقا {“analyze”:false, “value”:10} ، ستقوم عقدة التبديل (switch node) بتفعيل المخرج 2 و على عقدة الإخراج (debug)  المربوطة على هذا المخرج  ستظهر الرسالة. ستلاحظ  على لوحة الاخراج عند تبويب debug  على يمين النافذة طباعة الرسالة كما هو موضح بالصورة :

basic-nodes-and-flows

 كما لاحظت، يوفر لك Node-RED  عقد تسمح لك بسرعة تحديد محتويات الرسائل الواردة و توجيه الرسالة إلى أجزاء مختلفة من التدفق إعتمادا على محتوى معين للمدخلات.

التلاعب في محتوى الرسائل بإستخدام عقدة التغيير :

عقدة أخرى مفيدة وهي عقدة التغيير (change node ) ، و التي تسمح لك لتغيير محتوى الرسالة أو إضافة خصائص جديدة عليها . فيمكنك استخدام هذه العقدة للتأثير على الخصائص في الرسالة إما عن طريق تغيير خصائص موجودة ، أو حذف أو إضافة خصائص جديدة.

في هذا المثال ، سيتم إضافة حقل جديدة للرسالة وهو  msg.payload.note . أولا، قم بسحب و إسقاط عقدة التغيير (change node ) و توصيلها إلى المخرج الثاني من عقدة التبديل كما في الشكل أدناه ، كما تذكرون، ان محتوى حقل msg.payload.analyze  الرسالة هو false  فيتم اخراجها على المخرج رقم 2.

basic-nodes-and-flows

الان قم بإعداد العقدة لتعيين msg.payload.note  لتحتوي على “this is not being analyzed” كما مبين لك بالصورة التالية :

basic-nodes-and-flows

عند استقبال الرسالة التي ترسلها عقدة التبديل (switch node) إلى المخرج 2 ، سوف يتم تعديلها لتحتوي على عنصر “note”  مع جملة “this is not being analyzed” .  اذا قمت بنشر (deploy) و اختبار التدفق بواسطة ارسال رسالة MQTT  من HiveMQ ، سوف يظهر لك المخرج كما هو موضح بالصورة التالية:

basic-nodes-and-flows

X
Product added to the cart