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

قبل الدخول إلى واجهة برمجة التطبيقات، لنلقِ نظرة على الخطوات العامة، بدءًا من البداية وحتى النهاية. ثم عندما عبر الموضوعات الفردية أو واجهات برمجة التطبيقات لاحقًا، سيكون لديك فكرة عن كيف ولماذا التحليل.

الخطوات الرئيسية الثلاث لتنفيذ الدفع هي:

  1. إضافة منطق من جانب العميل لتسجيل اشتراك المستخدم في عملية الدفع (مثل JavaScript وواجهة المستخدم في تطبيق ويب يسجّل مستخدمًا لإرسال الرسائل).
  2. طلب بيانات من واجهة برمجة التطبيقات من الواجهة الخلفية أو التطبيق الذي يؤدي إلى ظهور رسالة فورية إلى جهاز المستخدم
  3. ملف JavaScript لمشغّل الخدمات الذي سيتلقى "حدث الدفع" عندما يصل الدفع الجهاز. وفي لغة JavaScript هذه، ستتمكّن من عرض إشعار.

لنلقِ نظرة على تفاصيل كل خطوة من هذه الخطوات.

الخطوة 1: من جانب العميل

الخطوة الأولى هي "الاشتراك" المستخدم لدفع الرسائل.

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

يحتوي PushSubscription على جميع المعلومات التي نحتاجها لإرسال رسالة فورية إلى هذا المستخدم. يمكنك "نوعًا ما" فكر في هذا كمعرف لجهاز المستخدم.

ويتم كل ذلك في JavaScript باستخدام Push API.

دعم المتصفح

  • Chrome: 42.
  • الحافة: 17.
  • Firefox: 44
  • Safari: 16-

المصدر

قبل اشتراك أي مستخدم، يجب إنشاء مجموعة من "مفاتيح خادم التطبيقات"، والتي سنتناولها لاحقًا.

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

بعد اشتراكك في حساب المستخدِم والحصول على PushSubscription، عليك إرسال تفاصيل PushSubscription إلى الخلفية / الخادم على خادمك، ستحفظ هذا الاشتراك في قاعدة بيانات واستخدامها لإرسال رسالة فورية إلى هذا المستخدم.

تأكد من إرسال PushSUBSCRIPTION إلى الخلفية.

الخطوة 2: إرسال رسالة فورية

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

بعض الأسئلة التي قد تطرحها على نفسك:

  • مَن هي خدمة الإرسال السريع وما هي خدماتها؟
  • كيف تبدو واجهة برمجة التطبيقات؟ هل هو JSON أم XML أم غير ذلك؟
  • ما الإجراءات التي يمكن لواجهة برمجة التطبيقات تنفيذها؟

مَن هي خدمة الإرسال السريع وما هي خدماتها؟

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

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

للحصول على عنوان URL المناسب الذي يؤدي إلى ظهور رسالة فورية (مثل عنوان URL لخدمة Push)، عليك عليك فقط النظر إلى قيمة endpoint في PushSubscription.

في ما يلي مثال على القيم التي ستحصل عليها من PushSubscription:

{
  "endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
  "keys": {
    "p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
    "auth": "tBHItJI5svbpez7KI4CCXg=="
  }
}

ونقطة النهاية في هذه الحالة هي [https://random-push-service.com/some-kind-of-unique-id-1234/v2/]. ستكون خدمة الدفع "random-push-service.com" وتكون كل نقطة نهاية فريدة للمستخدم، يشار إليها من خلال 'some-kind-of-unique-id-1234'. عندما تبدأ العمل بالضغط، ستلاحظ هذا النمط.

ستتم تغطية المفاتيح في الاشتراك لاحقًا.

كيف تبدو واجهة برمجة التطبيقات؟

لقد ذكرتُ أنّ كل خدمة إرسال بيانات على الويب تتوقع تلقّي طلب البيانات من واجهة برمجة التطبيقات نفسه. واجهة برمجة التطبيقات هذه بروتوكول Web Push: وهو معيار مجموعة مهندسي شبكة الإنترنت (IETF) الذي يحدد كيفية إجراء طلب بيانات من واجهة برمجة التطبيقات إلى خدمة إرسال البيانات.

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

ما الإجراءات التي يمكن لواجهة برمجة التطبيقات تنفيذها؟

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

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

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

تتضمّن التعليمات تفاصيل مثل:

  • الوقت المستغرَق في الرسالة الفورية. يحدد هذا مدة وضع الرسالة في قائمة الانتظار قبل تتم إزالته ولا يتم تسليمه.

  • تحديد مدى أهمية الرسالة. يكون هذا مفيدًا في حالة احتفاظ خدمة الدفع عمر البطارية للمستخدمين من خلال تسليم الرسائل ذات الأولوية العالية فقط.

  • إضافة "موضوع" إلى رسالة فورية الذي سيستبدل أي رسالة معلقة بهذه الرسالة الجديدة.

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

الخطوة 3: إرسال الحدث على جهاز المستخدم

بعد أن نرسل رسالة فورية، ستحتفظ خدمة الدفع الفوري برسالتك على خادمها حتى وقوع أحد الأحداث التالية:

  1. يتصل الجهاز بالإنترنت ثم تسلم خدمة الإرسال الرسالة.
  2. تنتهي صلاحية الرسالة. إذا حدث ذلك، فإن خدمة الإرسال تزيل الرسالة من قائمة الانتظار و فلن يتم تسليمه أبدًا.

عندما تقوم خدمة الدفع بتسليم رسالة، سيتلقى المتصفح الرسالة وفك تشفير أي رسالة وإرسال حدث push إلى مشغّل الخدمات.

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

إنه داخل "دفع" عامل الخدمة يمكنك إجراء أي مهام في الخلفية. إِنْتَ إجراء مكالمات إحصائية وتخزين الصفحات مؤقتًا بلا اتصال بالإنترنت وإظهار الإشعارات

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

هذه هي الطريقة الكاملة للرسائل الفورية.

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

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