Catch up on everthing we announced at this year's Firebase Summit. Learn more

שלח הודעות upstream מאפליקציית לקוח Unity

אם הסככה בשרת האפליקציה שלך את שרת XMPP חיבור בפרוטוקול, זה יכול לקבל הודעות upstream מההתקן של משתמש לענן. כדי ליזום הודעה במעלה הזרם, אפליקציית הלקוח שולחת בקשה המכילה את הדברים הבאים:

  • הכתובת של שרת האפליקציה המקבל במתכונת SENDER_ID@fcm.googleapis.com .
  • מזהה הודעה כי צריך להיות ייחודי לכל זיהוי השולח .
  • נתוני ההודעה הכוללים את זוגות ערך המפתח של מטען ההודעה.

כאשר הוא מקבל נתונים אלה, ה- FCM בונה בית XMPP לשליחתו לשרת האפליקציות, ומוסיף קצת מידע נוסף על המכשיר והאפליקציה הנשלחת.

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