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

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

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

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

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

ตัวอย่างการใช้งานฟีเจอร์นี้มีดังนี้

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

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

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

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

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