تلقّي آخر الأخبار في الوقت الفعلي في "الإضافات"

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

  • Web Push أو Push API هو معيار ويب يتيح لك إرسال الرسائل وتلقّيها في إحدى إضافات Chrome من أي مزوّد خدمة Push أو حتى من خلال خادم الويب الخاص بك.
  • browser.gcm هي واجهة برمجة تطبيقات قديمة خاصة بالإضافات تتيح لك إرسال الرسائل واستلامها باستخدام خدمة "مراسلة Firebase السحابية".
  • WebSockets هو بروتوكول منخفض المستوى يتيح لك فتح اتصال ثنائي الاتجاه بين إضافة Chrome والخادم.

السيناريوهات الشائعة

في ما يلي بعض السيناريوهات الشائعة في إضافات Chrome التي تكون فيها الاتصالات في الوقت الفعلي ضرورية:

إبقاء المستخدمين على اطّلاع على التغييرات

إذا كنت بصدد مزامنة الملفات أو الإعدادات أو غير ذلك من المعلومات بين عدة مستخدمين، ستكون خدمة Web Push هي الطريقة المثالية لإرسال تحديثات غير مرئية إلى الإضافة لإعلامها بتعديل الحالة من الخادم.

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

إرسال إشعارات إلى المستخدمين

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

إذا كنت تريد إرسال رسائل إلى مجموعة فرعية فقط من المستخدمين، فإنّ الإشعارات الفورية هي الخيار الأفضل. على الرغم من أنّ خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" توفّر المواضيع (المعروفة أيضًا باسم القنوات)، إلا أنّها متاحة فقط في واجهة برمجة التطبيقات HTTP Cloud Messaging API. يختلف هذا الإصدار عن الإصدار القديم الذي تستخدمه browser.gcm. إذا كنت تريد إرسال رسائل عامة إلى جميع المستخدمين، بما في ذلك مستخدمو الإصدارات القديمة من Chrome (الإصدارات الأقدم من 121)، سيكون browser.gcm هو الخيار الأمثل. استنادًا إلى واجهات برمجة التطبيقات القديمة للمراسلة في Firebase، تم إتاحة browser.gcm في Chrome لأكثر من عقد من الزمن.

يمكنك استخدام Web Push أو browser.gcm لإرسال إشعارات إلى المستخدمين عند حدوث أمر مهم في حساباتهم، مثل وصول رسالة جديدة أو مشاركة ملف.

المراسلة الفورية

هل تحتاج إلى تواصل متكرر في الاتجاهين؟ في هذه الحالة، قد يكون استخدام مقبس الويب هو الخيار الأفضل لك. يفتح اتصالاً ثنائي الاتجاه بين الإضافة والخادم (أو حتى مباشرةً مع مستخدمين آخرين). ويتيح لك تبادل البيانات والرسائل في الوقت الفعلي. مع أنّ هذه الميزة تشكّل خيارًا رائعًا على الويب بشكل عام، إلا أنّها تتضمّن بعض القيود المتعلقة بالإضافات التي يجب وضعها في الاعتبار إذا كنت تخطّط لاستخدامها.

في بقية هذا الدليل، سنلقي نظرة فاحصة على الخيارات المتاحة.

الإشعارات الفورية باستخدام Push API

باستخدام Push API، يمكنك استخدام أي مزوّد خدمة Push لإرسال الإشعارات والرسائل الفورية. ستتم معالجة الإشعار الوارد من Push API من خلال عامل الخدمة فور تلقّيه. إذا تم تعليق الإضافة، سيؤدي إرسال إشعار إلى إعادة تفعيلها. عملية استخدامها في الإضافات هي نفسها تمامًا كما لو كنت تستخدمها على الويب المفتوح.

الإشعارات الفورية باستخدام browser.gcm

توفّر واجهة برمجة التطبيقات browser.gcm اتصالاً مباشرًا بخدمة "المراسلة عبر السحابة الإلكترونية من Firebase" ‏ (FCM)، وهي خدمة لإرسال آخر الأخبار في الوقت الفعلي إلى تطبيقات الويب وتطبيقات الأجهزة الجوّالة. هذه واجهة برمجة تطبيقات خاصة بإضافات Chrome تمت إضافتها قبل سنوات عديدة من توفّر Push في المتصفّحات. تم إنشاء هذا التطبيق باستخدام واجهات برمجة التطبيقات القديمة عبر HTTP (التي تم إيقافها نهائيًا) من Firebase. على الرغم من أنّه تم إيقاف هذه واجهات برمجة التطبيقات نهائيًا في أماكن أخرى، لم يتم إيقافها نهائيًا في الإضافات. وستبقى متاحة في المستقبل المنظور. ومع ذلك، بما أنّ هذه هي خدمة الخلفية القديمة للإشعارات الفورية، فهي تفتقر إلى ميزات مثل المواضيع.

مع أنّ خدمة الخلفية في FCM هي شرط أساسي لوصول الإشعارات إلى المستخدمين في Chrome، ليس عليك استخدام browser.gcm لإرسال الرسائل. يمكن لجميع مقدّمي خدمة الإشعارات الفورية إرسال الرسائل والأحداث وتلقّيها إلى حساب Firebase باستخدام الإشعارات الفورية على الويب. على الرغم من أنّ هذه الواجهة لا تزال متوافقة تمامًا مع Chrome Extension API، من الأفضل استخدام معايير الويب، مثل Push API، بدلاً من الواجهات الخاصة بالإضافات، مثل هذه الواجهة. إذا كانت حالة الاستخدام الخاصة بك تتطلّب browser.gcm، يمكنك الاطّلاع على دليل تفصيلي حول كيفية إعداد browser.gcm من البداية.

الرسائل في الوقت الفعلي باستخدام WebSockets

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

غير مناسب للإشعارات الفورية

بما أنّ WebSockets تعمل على منصة الويب، بدلاً من استخدام واجهة برمجة تطبيقات لمنصة الإضافات مثل browser.gcm، لا يمكن لمتصفّح Chrome تنبيه الإضافة عند بدء اتصال Websocket خارج الإضافة.

الاتصالات النشطة فقط

يعلّق Chrome الإضافات التي لا يتم استخدامها بعد 30 ثانية. يستخدم Chrome عددًا من الإرشادات لتحديد ما إذا كانت الإضافة "قيد الاستخدام"، وأحد هذه الإرشادات هو اتصال WebSocket نشط. لن يعلّق Chrome إضافة أرسلت رسالة WebSocket أو تلقّتها خلال آخر 30 ثانية. إذا كنت تستخدم WebSockets في إضافتك، وكنت بحاجة إلى التأكّد من عدم إغلاقها قبل الأوان، يمكنك إرسال رسالة إشارة تنبيه للحفاظ على الاتصال. ويشمل ذلك إرسال رسائل دورية إلى الخادم لإعلامه وإعلام Chrome بأنّك ما زلت نشطًا. يتوفّر مثال على كيفية إبقاء WebSocket نشطًا إلى أجل غير مسمى في مستندات WebSocket.