إرسال رسائل المنبع من تطبيق عميل Unity

إذا كان خادم التطبيق الخاص بك ينفذ بروتوكول XMPP Connection Server ، فيمكنه تلقي الرسائل الأولية من جهاز المستخدم إلى السحابة. لبدء رسالة المنبع، يرسل تطبيق العميل طلبًا يحتوي على ما يلي:

  • عنوان خادم التطبيق المتلقي بالتنسيق SENDER_ID@fcm.googleapis.com .
  • معرف الرسالة الذي يجب أن يكون فريدًا لكل معرف مرسل .
  • بيانات الرسالة التي تشتمل على أزواج القيمة الرئيسية لحمولة الرسالة.

عندما تتلقى هذه البيانات، تقوم FCM بإنشاء مقطع XMPP لإرساله إلى خادم التطبيق، مع إضافة بعض المعلومات الإضافية حول جهاز الإرسال والتطبيق.

أرسل رسالة أولية من تطبيق عميل Unity

لإرسال رسائل إلى الخادم، يقوم تطبيق عميل Unity بإنشاء رسالة ويستدعي Send كما هو موضح:

Firebase.Messaging.Message message;
message.To = SENDER_ID + "@fcm.googleapis.com";
message.MessageId = get_unique_message_id();
message.Data("my_message", "Hello World");
message.Data("my_action", "SAY HELLO");
message.TimeToLive = kTimetoLive;
Firebase.Messaging.FirebaseMessaging.Send(message);

أين:

  • message.To هو عنوان خادم التطبيق المتلقي بالتنسيق SENDER_ID@fcm.googleapis.com .

  • message.MessageId هو معرف رسالة فريد. يتم تحديد كافة عمليات الاسترجاعات الخاصة بمستقبل الرسالة على أساس معرف الرسالة هذا.

  • message.Data عبارة عن خريطة للمفاتيح والقيم كسلاسل.

  • يحدد message.TimeToLive المدة (بالثواني) التي يجب أن تبقى فيها الرسالة في وحدة تخزين FCM إذا كان الجهاز غير متصل بالإنترنت. إذا لم تتمكن FCM من تسليم الرسالة قبل الوصول إلى انتهاء الصلاحية هذا، فإنها ترسل إشعارًا مرة أخرى إلى العميل.

تقوم مكتبة عملاء FCM بتخزين الرسالة على تطبيق العميل مؤقتًا وترسلها عندما يكون لدى العميل اتصال خادم نشط. عند استلام الرسالة، يرسلها FCM إلى خادم التطبيق.

تلقي رسائل XMPP على خادم التطبيق

عندما تتلقى FCM مكالمة مراسلة من المنبع من تطبيق عميل، فإنها تقوم بإنشاء مقطع XMPP الضروري لإرسال الرسالة المنبع. تضيف FCM category from الحقول، ثم ترسل مقطعًا مثل ما يلي إلى خادم التطبيق:

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "category":"com.example.yourapp", // to know which app sent it
      "data":
      {
          "hello":"world",
      },
      "message_id":"m-123",
      "from":"REGID"
  }
  </gcm>
</message>

إرسال رسالة ACK

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

<message id="">
  <gcm xmlns="google:mobile:data">
  {
      "to":"REGID",
      "message_id":"m-123"
      "message_type":"ack"
  }
  </gcm>
</message>

راجع مرجع خادم اتصال XMPP لمزيد من المعلومات حول بناء جملة الرسالة الأولية.