Check out what’s new from Firebase at Google I/O 2022. Learn more

שלח הודעות במעלה הזרם מאפליקציית לקוח של 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 Connection Server Reference למידע נוסף על תחביר הודעות במעלה הזרם.