نظرة عامة على الإشعارات الفورية

نظرة عامة على الإشعارات الفورية وأسباب استخدامها وكيفية عملها.

ما هي الإشعارات الفورية؟

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

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

أمثلة على الإشعارات على نظامَي التشغيل macOS وAndroid.
أمثلة على الإشعارات على أجهزة macOS وAndroid

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

لماذا يُنصح باستخدام الإشعارات الفورية؟

  • بالنسبة إلى المستخدمين، تشكّل الإشعارات الفورية طريقة لتلقّي الإشعارات في الوقت المناسب وذات الصلة. ومعلومات دقيقة.
  • بالنسبة إليك (مالك الموقع الإلكتروني)، تشكّل الإشعارات الفورية طريقة لزيادة عدد المستخدمين التفاعل.

كيف تعمل الإشعارات الفورية؟

الخطوات الأساسية لتنفيذ الإشعارات الفورية هي:

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

تشرح بقية هذه الصفحة هذه الخطوات بشكل أكثر تفصيلاً.

الحصول على إذن لإرسال إشعارات فورية

أولاً، يجب أن يحصل موقعك الإلكتروني على إذن المستخدم لإرسال إشعارات فورية. يجب أن يتم تشغيل ذلك من خلال إيماءة مستخدم، مثل النقر على زر نعم. بجانب طلب Do you want to receive push notifications? بعد هذا التأكيد، الاتصال بالرقم Notification.requestPermission() نظام التشغيل أو من المحتمل أن يعرض المتصفح على جهاز المستخدم نوعًا من واجهة المستخدم للتأكيد رسميًا على أن يريد المستخدم تفعيل الإشعارات الفورية. تختلف واجهة المستخدم هذه باختلاف الأنظمة الأساسية.

إشراك العميل في ميزة الإشعارات الفورية

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

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

الحصول على إذن لإرسال رسائل فورية احصل على PushSUBSCRIPTION. إرسال
PushSUBSCRIPTION إلى خادمك.

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

لا يرسل الخادم رسالة الدفع مباشرةً إلى جهاز العميل. حاسمة وتتيح لك push service ذلك. خدمة الدفع الفوري هي خدمة ويب يتحكّم فيها بائع متصفّح المستخدم. عندما تريد إرسال إشعار فوري إلى عميل تحتاج تقديم طلب خدمة ويب إلى خدمة إرسال الإشعارات. تطلب خدمة الويب أن التي ترسلها إلى خدمة الإرسال الفوري تُعرف باسم طلب بروتوكول Web Push. تشير رسالة الأشكال البيانية يجب أن يتضمن طلب بروتوكول دفع الويب ما يلي:

  • البيانات المطلوب تضمينها في الرسالة
  • العميل المطلوب إرسال الرسالة إليه.
  • تعليمات حول كيفية تسليم الرسالة من خلال خدمة الإرسال المباشر على سبيل المثال، يمكن أن يحددوا أن خدمة الدفع يجب أن تتوقف عن محاولة إرسال الرسالة بعد 10 دقائق.

عادةً ما تقوم بتقديم طلب بروتوكول دفع الويب من خلال خادم تتحكم فيه. وبالطبع، لا يتعيّن على الخادم إنشاء طلب خدمة الويب الأولية. نفسها. تتوفر مكتبات يمكنها معالجة هذا الأمر نيابةً عنك، مثل مكتبة web-push-libs. لكن الآلية الأساسية هي طلب خدمة ويب عبر HTTP.

يرسل الخادم طلب بروتوكول دفع الويب إلى خدمة الإرسال، وترسل خدمة الإرسال إلى الرسالة إلى جهاز المستخدم.

تتلقّى خدمة الدفع الفوري طلبك وتصادق عليه وتوجّه عملية الدفع. رسالة إلى العميل المناسب. إذا كان متصفح العميل في وضع عدم الاتصال، فسيؤدي إرسال تضع الخدمة الرسالة الفورية في قائمة الانتظار حتى يصبح المتصفّح متصلاً بالإنترنت.

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

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

{
  "endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
  "expirationTime": null,
  "keys": {
    "p256dh": "BGyyVt9FFV…",
    "auth": "R9sidzkcdf"
  }
}

إنّ نطاق endpoint هو في الأساس خدمة Push. مسار endpoint هي معلومات حول معرِّف العميل تساعد خدمة الإرسال المباشر في تحديد العميل المحدد الذي تريد دفع الرسالة إليه.

يتم استخدام keys للتشفير، وسيتم شرح ذلك لاحقًا.

تشفير رسالة الدفع

يجب أن تكون البيانات التي ترسلها إلى خدمة الدفع مشفرة. وهذا يمنع خدمة الدفع من القدرة على عرض البيانات التي ترسلها إلى العميل. تذكر أن مورد المتصفح يقرر خدمة الدفع التي سيتم استخدامها، من الناحية النظرية، قد تكون خدمة الدفع غير آمنة أو غير آمنة. يجب أن يستخدم الخادم عنصر keys المقدَّم في PushSubscription لتشفير بروتوكول إرسال البيانات على الويب الطلبات.

التوقيع على طلبات بروتوكول إرسال البيانات على الويب

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

يتضمن سير العمل هذا مفتاحًا خاصًا ومفتاحًا عامًا فريدين التطبيق. تتم عملية المصادقة على النحو التالي تقريبًا:

  • يمكنك إنشاء المفتاح الخاص والعام كمهمة لمرة واحدة. الدمج للمفتاحين الخاص والعام يُعرف باسم مفاتيح خادم التطبيقات. قد تظهر لك أيضًا باسم VAPID . VAPID هو المواصفات التي تحدد عملية المصادقة هذه.
  • فعندما تشترك في برنامج لإرسال الإشعارات من رمز JavaScript، تقديم مفتاحك العام. عندما تنشئ خدمة الدفع endpoint في الجهاز، يتم ربط المفتاح العام المقدَّم بـ endpoint.
  • عند إرسال طلب لبروتوكول Web Push، فإنك توقّع بعض معلومات JSON. باستخدام مفتاحك الخاص.
  • عندما تتلقى خدمة الدفع طلب بروتوكول دفع الويب، فإنها تستخدم ملف العام لمصادقة المعلومات الموقعة. إذا كان التوقيع صالحًا فعندئذٍ تعلم خدمة الدفع أن الطلب جاء من خادم لديه المفتاح الخاص المطابق.

تخصيص تسليم الرسالة الفورية

تحدِّد مواصفات طلب بروتوكول الدفع على الويب أيضًا المعلَمات التي تتيح لك تخصيص الطريقة التي تحاول بها خدمة الدفع إرسال الرسالة الفورية إلى العميل. على سبيل المثال، يمكنك تخصيص ما يلي:

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

تلقّي الرسائل المدفوعة وعرضها كإشعارات

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

  1. يتصل العميل بالإنترنت وتقوم خدمة الدفع بتسليم الرسالة الفورية.
  2. تنتهي صلاحية الرسالة.

عندما يتلقى متصفّح العميل رسالة فورية، يفك تشفير الرسالة الفورية. البيانات وإرسال حدث push إلى خدمتك . عامل الخدمة هو وهو في الأساس رمز JavaScript يمكن تشغيله في الخلفية، حتى عندما يستخدم موقعك الإلكتروني لم يفتح أو تم إغلاق المتصفح. في حدث "push" الخاص بعامل الخدمات المعالج الذي تطلبه ServiceWorkerRegistration.showNotification() لعرض المعلومات كإشعار.

تصل الرسالة على الجهاز. يوقظ المتصفح عامل الخدمة. تم إرسال حدث الدفع.

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

الدروس التطبيقية حول الترميز