กำหนดอายุการใช้งานของข้อความ

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

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

ใน Android และเว็บ คุณสามารถระบุอายุการใช้งานสูงสุดของ ข้อความได้ ค่าต้องเป็นระยะเวลาตั้งแต่ 0 ถึง 2,419,200 วินาที (28 วัน) และสอดคล้องกับระยะเวลาสูงสุดที่ FCM จัดเก็บและพยายามส่งข้อความ โดยค่าเริ่มต้น คำขอที่ไม่มีฟิลด์นี้ จะมีระยะเวลาสูงสุด 4 สัปดาห์

ใน iOS คุณสามารถตั้งค่าส่วนหัว apns-expiration ใน ออบเจ็กต์ ApnsConfig ได้ ดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบของ Apple เกี่ยวกับการส่ง คำขอการแจ้งเตือนไปยัง APNs

ตัวอย่างการใช้งานที่เป็นไปได้สำหรับฟีเจอร์นี้

  • สายเรียกเข้าวิดีโอแชท
  • กิจกรรมคำเชิญที่กำลังจะหมดอายุ
  • กิจกรรมในปฏิทิน

ข้อดีอีกอย่างของการระบุอายุการใช้งานของข้อความคือ FCM จะไม่ใช้การควบคุมปริมาณข้อความที่ยุบได้กับข้อความที่มี ค่า Time to Live เป็น 0 วินาที โปรดทราบว่าค่า ttl เป็น 0 หมายความว่า ระบบจะทิ้งข้อความที่ส่งไม่ได้ทันที อย่างไรก็ตาม เนื่องจากระบบจะไม่จัดเก็บข้อความดังกล่าว จึงทำให้การส่งข้อความแจ้งเตือนมีเวลาในการตอบสนองที่ดีที่สุด

ตัวอย่างคำขอที่มี ttl

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "data":{
      "Nick" : "Mario",
      "body" : "great match!",
      "Room" : "PortugalVSDenmark"
    },
    "apns":{
      "headers":{
        "apns-expiration":"1604750400"
      }
    },
    "android":{
      "ttl":"4500s"
    },
    "webpush":{
      "headers":{
        "TTL":"4500"
      }
    }
  }
}

อายุการใช้งานของข้อความ

เมื่อเซิร์ฟเวอร์แอปโพสต์ข้อความไปยัง FCM และได้รับรหัสข้อความ กลับมา ไม่ได้หมายความว่าระบบได้ส่งข้อความไปยังอุปกรณ์แล้ว แต่หมายความว่าระบบยอมรับข้อความเพื่อส่งแล้ว เวลาที่ระบบส่งข้อความขึ้นอยู่กับหลายปัจจัย

หากอุปกรณ์เชื่อมต่ออยู่แต่เข้าสู่โหมดพักเครื่อง FCM จะจัดเก็บข้อความที่มีลำดับความสำคัญต่ำไว้จนกว่าอุปกรณ์จะออกจากโหมดพักเครื่อง หากตั้งค่า collapse_key ไว้ และ มีข้อความที่มี คีย์การยุบและ โทเค็นการลงทะเบียนเดียวกันรอการส่งอยู่ ระบบจะทิ้งข้อความเก่าและแทนที่ด้วย ข้อความใหม่ อย่างไรก็ตาม หากไม่ได้ตั้งค่าคีย์การยุบ ระบบจะจัดเก็บทั้งข้อความใหม่และข้อความเก่าไว้เพื่อส่งในอนาคต

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

สำหรับอุปกรณ์ Android หากอุปกรณ์ไม่ได้เชื่อมต่อกับ FCM นานกว่า 1 เดือน FCM จะยังคงยอมรับข้อความแต่จะทิ้งข้อความนั้นทันที หากอุปกรณ์เชื่อมต่อภายใน 4 สัปดาห์นับจากข้อความข้อมูลล่าสุดที่คุณส่ง ไปยังอุปกรณ์ แอปไคลเอ็นต์จะได้รับการ onDeletedMessages() เรียกกลับ

หากต้องการข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการส่งข้อความในแพลตฟอร์ม Android หรือ Apple คุณสามารถใช้FCMการรายงาน แดชบอร์ด, ซึ่งจะบันทึกจำนวนข้อความที่ส่งและเปิดในอุปกรณ์ Apple และ Android รวมถึงข้อมูลการแสดงผลสำหรับแอป Android