Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

ส่งข้อความอัปสตรีมจากแอปไคลเอนต์ Unity

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

หากเซิร์ฟเวอร์แอปของคุณใช้โปรโตคอล เซิร์ฟเวอร์การเชื่อมต่อ XMPP ก็สามารถรับข้อความอัปสตรีมจากอุปกรณ์ของผู้ใช้ไปยังคลาวด์ได้ เพื่อเริ่มต้นข้อความอัปสตรีม แอพไคลเอนต์ส่งคำขอที่มีข้อมูลต่อไปนี้:

  • ที่อยู่ของเซิร์ฟเวอร์แอปที่รับในรูปแบบ SENDER_ID@fcm.googleapis.com
  • รหัสข้อความที่ควรไม่ซ้ำกันสำหรับ ID ผู้ส่ง แต่ละราย
  • ข้อมูลข้อความที่ประกอบด้วยคู่คีย์-ค่าของเพย์โหลดของข้อความ

เมื่อได้รับข้อมูลนี้ 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 จะแคชข้อความในแอปไคลเอ็นต์และส่งเมื่อไคลเอ็นต์มีการเชื่อมต่อเซิร์ฟเวอร์ที่ใช้งานอยู่ เมื่อได้รับข้อความ 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 ที่มี ID ข้อความที่ไม่ซ้ำกัน หาก FCM ไม่ได้รับ ACK ระบบอาจลองส่งข้อความไปยังเซิร์ฟเวอร์แอปอีกครั้ง

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

ดูการ อ้างอิงเซิร์ฟเวอร์การเชื่อมต่อ XMPP สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์ข้อความอัปสตรีม