Skip to content

مراقبة الانقطاع وأحداث الطاقة

حالة الاستخدام

استخدم هذا النمط عندما تحتاج الواجهة الخلفية لديك إلى تحديث التوفّر، أو إطلاق تنبيهات، أو تسجيل إشارات تغيّر الطاقة المدعومة دون استعلام متكرر عن حالة الجهاز.

  • يصف device.connection.online وdevice.connection.offline تغيّرات الاتصال.
  • يبلّغ device.power.lost عن إشارة فقدان طاقة من الأجهزة التي توفّر تلك الإشارة.
  • يبلّغ device.power.restored عن استعادة الطاقة، لكنه لا يعني أن اتصال الشبكة متاح.
  • لا تملك طُرز الأجهزة بالضرورة سلوك كشف طاقة متطابقًا. تحقّق من تعريف نوع الجهاز وتوثيق الجهاز المُسلَّم قبل الوعد بهذه التنبيهات في منتج. إذا لم تكن هناك قدرة موثّقة صراحةً، لا تفترض الدعم.

التدفق الموصى به

يوفّر WebSocket إشعارات فورية، لكنه ليس نظام تسجيل دائمًا. احتفظ بالحالة الحالية في خدمتك الخاصة واستعِدها من REST بعد أي فجوة في الأحداث.

التنفيذ خطوة بخطوة

  1. ابنِ حالة الحساب الأولية باستخدام سرد الأجهزة (بالإنجليزية).
  2. راجع سرد تعريفات نوع الجهاز (بالإنجليزية) وتوثيق الجهاز المُسلَّم قبل تفعيل واجهة أو تنبيهات خاصة بالطاقة. قائمة عمليات عامة ليست دليلًا على وجود كشف طاقة.
  3. أنشئ تذكرة WebSocket (بالإنجليزية)، اتصل، وابدأ Ping/Pong الخاص بالبروتوكول إضافةً إلى session.ping.
  4. عند device.connection.offline، توقّف عن عرض الجهاز كقابل للتحكم وسجّل occurredAt.
  5. عند device.connection.online، ضع علامة على استعادة الاتصال، لكن لا تفترض أن كل حالة الملحقات متزامنة بالفعل. حدّث الجهاز عند الحاجة إلى الحالة الحالية.
  6. عند device.power.lost، خزّن الحدث وأطلق التنبيه. عند device.power.restored، يمكن إغلاق تنبيه الطاقة، لكن انتظر device.connection.online قبل معاملة الجهاز كقابل للتحكم.
  7. استخدم فقط الـ topic المنظّم والطوابع الزمنية لأحداث الطاقة. لا تحلّل أو تُبنِ منطق تفرّع على نص البرنامج الثابت الخام.
  8. بعد إعادة الاتصال، استخدم REST لاستعادة خط أساس الحساب واستعلم فقط عن الأجهزة الحرجة التي تتطلب تأكيدًا فوريًا.

الواجهات والأحداث الرئيسية

الغرضالمرجع
خط أساس الحساب الحاليسرد الأجهزة (بالإنجليزية)
تأكيد جهاز واحدالحصول على جهاز (بالإنجليزية)
أحداث الاتصال والانقطاعأحداث اتصال الجهاز (بالإنجليزية)
دلالة فقدان الطاقة واستعادتهاأحداث طاقة الجهاز (بالإنجليزية)
نبض القلب والتعافينبض القلب وإعادة الاتصال (بالإنجليزية)

الفشل والتعافي

  • اكتشف الاتصالات المغلقة ومهلات نبض القلب المنتهية، ثم أعِد الاتصال بتراجع تدريجي محدود وjitter عشوائي.
  • لا تُعِد استخدام wsTicket أبدًا؛ أنشئ واحدة جديدة قبيل كل محاولة اتصال مباشرة.
  • الأحداث لا تُعاد. بعد إعادة الاتصال، أعِد بناء الحالة الحالية بدلًا من افتراض عدم وقوع أي حدث.
  • يمكن أن يتكرر تسليم الأحداث حول إعادة المحاولة أو حدود إعادة الاتصال. اجعل المعالجات تماثلية باستخدام الـ topic المتاح، وdeviceId، والطوابع الزمنية، والحالة الناتجة؛ لا تعتمد على حقل لا يحدّده عقد الحدث.
  • لا يوجد ترتيب مضمون لأحداث الطاقة والاتصال، وقد تصل إحدى الفئتين فقط. لا تستنتج تغيّرات الطاقة من online/offline.

اعتبارات الإنتاج

  • خزّن وقت استلام الحدث منفصلًا عن occurredAt الخاص بالجهاز، من أجل قابلية الملاحظة.
  • عرّف قواعد كبت التنبيهات والتعافي بحيث لا تُنتج عواصف إعادة الاتصال حوادث مكررة.
  • تعامل مع WebSocket كقناة تحديث حيّة وREST كمسار استعادة الحالة.
  • أكّد دعم أحداث الطاقة أثناء تأهيل الجهاز. لا تفترض الدعم فقط لأن نوع جهاز آخر يبلّغ عن هذا الحدث.

الخطوات التالية

Docs buildVersion v1.5.8-20260814-180545-84
Copyright © 2026 WLTE