استنادًا إلى نموذج النشر/الاشتراك، تتيح لك ميزة المراسلة حسب الموضوع في FCM إرسال رسالة إلى أجهزة متعددة اشتركت في موضوع معيّن. يمكنك إنشاء رسائل المواضيع حسب الحاجة، ويتولّى نظام FCM توجيه الرسائل وتسليمها بشكل موثوق إلى الأجهزة المناسبة.
على سبيل المثال، يمكن لمستخدمي تطبيق محلي لتوقّع المد والجزر الاشتراك في موضوع "تنبيهات تيارات المد والجزر" وتلقّي إشعارات بشأن أفضل الظروف لصيد الأسماك في المياه المالحة في مناطق محدّدة. يمكن لمستخدمي تطبيق رياضي الاشتراك في تلقّي آخر الأخبار تلقائيًا حول نتائج المباريات المباشرة الخاصة بفِرقهم المفضّلة.
في ما يلي بعض النقاط التي يجب أخذها في الاعتبار بشأن المواضيع:
تكون المراسلة حسب الموضوع مناسبة بشكل أفضل للمحتوى، مثل الطقس أو المعلومات الأخرى المتاحة للجميع.
تم تحسين رسائل المواضيع لتحقيق معدل نقل بيانات أعلى بدلاً من تقليل وقت الاستجابة. لضمان سرعة وأمان تسليم الرسائل إلى أجهزة فردية أو مجموعات صغيرة من الأجهزة، استهدِف الرسائل باستخدام رموز التسجيل، وليس المواضيع.
إذا كنت بحاجة إلى إرسال رسائل إلى أجهزة متعددة لكل مستخدم، ننصحك باستخدام ميزة إرسال الرسائل إلى مجموعة أجهزة في حالات الاستخدام هذه.
تتيح ميزة المراسلة حسب الموضوع عددًا غير محدود من الاشتراكات لكل موضوع. ومع ذلك، تفرض خدمة FCM حدودًا في المجالات التالية:
- يمكن الاشتراك في ما لا يزيد عن 2,000 موضوع لكل مثيل تطبيق.
- إذا كنت تستخدم الاستيراد المجمّع للاشتراك في مثيلات التطبيق، يقتصر كل طلب على 1, 000 مثيل للتطبيق.
- يتم تحديد معدّل تكرار الاشتراكات الجديدة لكل مشروع. إذا أرسلت عددًا كبيرًا جدًا من طلبات الاشتراك في فترة زمنية قصيرة، ستردّ خوادم FCM بالرمز
429 RESOURCE_EXHAUSTED
("تجاوزت الحصة"). أعِد المحاولة باستخدام خوارزمية الرقود الأسي الثنائي.
الاشتراك في موضوع في تطبيق العميل
يمكن لتطبيقات العميل الاشتراك في أي موضوع حالي، أو يمكنها إنشاء موضوع جديد. عندما يشترك تطبيق عميل في اسم موضوع جديد (اسم غير متوفّر حاليًا في مشروعك على Firebase)، يتم إنشاء موضوع جديد بهذا الاسم في FCM ويمكن لأي عميل الاشتراك فيه بعد ذلك.
للاشتراك في موضوع، اتّصِل بالرقم subscribeToTopic()
مع ذكر اسم الموضوع. تعرض هذه الطريقة Future
، ويتم حلّها عند نجاح الاشتراك:
await FirebaseMessaging.instance.subscribeToTopic("topic");
لإلغاء الاشتراك، اتّصِل بالرقم unsubscribeFromTopic()
مع ذكر اسم الموضوع.
لا تتوافق الأداتان subscribeToTopic()
وunsubscribeFromTopic()
مع برامج الويب. للتعرّف على كيفية إدارة الاشتراكات لمستخدمي الويب، يُرجى الاطّلاع على مقالة إرسال رسائل إلى مواضيع على الويب/JavaScript.