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

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

  • عنوان خادم تطبيق الاستقبال بالتنسيق 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 رسالة تأكيد، قد يحاول مرة أخرى إرسال الرسالة إلى خادم التطبيق.

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

يُرجى الاطّلاع على مرجع خادم اتصال XMPP لمزيد من المعلومات عن بنية الرسالة الأولية