استخدام عقدة التبديل لتوجية الرسالة اعتمادا على خصائص معينة :
أحد المميزات الموجودة لدى JSON object أنها تتيح لك العمل بسهوله على خصائصها. سيتم استخدام عقدة التبديل (switch node) و التي تعمل كمفتاح أو توجيه للرسائل إلى اتجاه مخرج معين اعتمادا على خصائص الرسالة الواردة . على سبيل المثال، يمكنك تفحص خصائص الحقلmsg.payload.analyze و بالإعتماد على قيمتها (صحيحة / خاطئة ) ، تقرر توجيه الرسالة إلى أحد مخرجات عقدة التبديل (switch Node) .
قم بسحب عقدة التبديل (switch node) ، ثم انقر نقرا مزدوجا عليها . قم بإعدادها للتحقق من قيمة الحقل msg.payload.analyze ، إذا كانت صحيحة سنقوم بإخراج الرسالة إلى المخرج الأول لعقدة التبديل ; و إذا كانت خاطئة سنقوم بإخراج الرسالة إلى المخرج الثاني لعقدة التبديل . قم بإعداد عقدة التبديل كما هو موضح بالصورة ادناه :
الآن يمكنك توصيل عقدتين إخراج debug كما هو موضح بالصورة التالية ، عند إعداد عدة مخارج للعقدة ، يتم ترقيم المخارج من أعلى ، لذلك المخرج 1 هو المخرج الأعلى و المخرج 2 هو المخرج السفلي في الشكل التالي.
قم بالرجوع إلى صفحة إدخال HiveMQ و إرسال رسالة {MQTT {“analyze”:true, “value”:6 ، سوف تلاحظ أنه تم تفعيل المخرج الأول على عقدة التبديل و تم توجيه الرسالة الواردة على مخرج 1 ، إذا قمت بإرسال الرسالة التي تم استخدامها مسبقا {“analyze”:false, “value”:10} ، ستقوم عقدة التبديل (switch node) بتفعيل المخرج 2 و على عقدة الإخراج (debug) المربوطة على هذا المخرج ستظهر الرسالة. ستلاحظ على لوحة الاخراج عند تبويب debug على يمين النافذة طباعة الرسالة كما هو موضح بالصورة :
كما لاحظت، يوفر لك Node-RED عقد تسمح لك بسرعة تحديد محتويات الرسائل الواردة و توجيه الرسالة إلى أجزاء مختلفة من التدفق إعتمادا على محتوى معين للمدخلات.
التلاعب في محتوى الرسائل بإستخدام عقدة التغيير :
عقدة أخرى مفيدة وهي عقدة التغيير (change node ) ، و التي تسمح لك لتغيير محتوى الرسالة أو إضافة خصائص جديدة عليها . فيمكنك استخدام هذه العقدة للتأثير على الخصائص في الرسالة إما عن طريق تغيير خصائص موجودة ، أو حذف أو إضافة خصائص جديدة.
في هذا المثال ، سيتم إضافة حقل جديدة للرسالة وهو msg.payload.note . أولا، قم بسحب و إسقاط عقدة التغيير (change node ) و توصيلها إلى المخرج الثاني من عقدة التبديل كما في الشكل أدناه ، كما تذكرون، ان محتوى حقل msg.payload.analyze الرسالة هو false فيتم اخراجها على المخرج رقم 2.
الان قم بإعداد العقدة لتعيين msg.payload.note لتحتوي على “this is not being analyzed” كما مبين لك بالصورة التالية :
عند استقبال الرسالة التي ترسلها عقدة التبديل (switch node) إلى المخرج 2 ، سوف يتم تعديلها لتحتوي على عنصر “note” مع جملة “this is not being analyzed” . اذا قمت بنشر (deploy) و اختبار التدفق بواسطة ارسال رسالة MQTT من HiveMQ ، سوف يظهر لك المخرج كما هو موضح بالصورة التالية: