เจอคำถามว่า “ใน iOS ที่บางทีเปิดใน Chat ข้อความมาแล้วแต่ใน Notification ไม่เตือนนี่มันคืออะไรครับ?”
ต้องอธิบายอย่างนี้ก่อนว่า ใน Modern Mobile OS สมัยนี้ตัว OS มีระบบช่วย App ทำงานด้านหลังได้โดยที่ App มันโดน OS kill ตัว process ไป โดยหลักๆ มี 2 ส่วนคือ Task Schedule กับ Notification ครับ
- ตัว Notification เป็นตัวช่วยให้ App เหมือนทำงาน แต่จริงๆ มันทำงานฝั่ง server แล้ววิ่งมาที่ client เพื่อบอก user ให้มาเปิดตัว App แล้ววิ่งไปที่ข้อมูลนั้นๆ โดยอาจจะโหลดข้อมูลมาพร้อมๆ กับตอนเปิด App กลับมาใหม่
- ตัว Task Schedule จะปลุกตัว App มาทำงานอาจจะทุกๆ 30 นาที แต่มีเวลาจำกัดให้ทำงานเพียง 10 วินาที อะไรแบบนั้น เพื่อใช้ในการโหลดข้อมูลมารอไว้ ฯลฯ เป็นการทำงานฝั่ง client ที่อาจจะวิ่งไปหา server
เหตุที่ใช้วิธีนี้กันเพราะทำให้ตัวระบบประหยัดพลังงานมากที่สุดเท่าที่ยังทำได้ครับ
ทีนี้ถ้าเปิด Chat แล้วข้อความมาแต่ Notification ไม่มา คงเป็นส่วนของ Notification มีปัญหาไม่ส่ง push มา (อาจจะเพราะ Server ส่งข้อมูลกลับมา Client แล้วไม่เจอ หรือมีปัญหา ฯลฯ) แต่ Task Schedule ยังทำงานอยู่มันเลยโหลดข้อมูลมาได้
อันนี้เป็นการเช็คปัญหาเบื้องต้นนะครับ อาจจะมีรายละเอียดปลึกย่อยแตกต่างไปแต่ละ platform ครับ ;)
เรื่องเดียวกันนี้ ใช้อธิบายเหตุการณ์ที่ “เราอ่านข้อความไปแล้ว แต่ notification เพิ่งมาเด้งเตือนทีหลัง” ได้เช่นกันใช่มั้ยคับ?
ได้เหมือนกันครับ ตอนโหลดมาแล้วตัว App วิ่งไป flag ว่า read ในระบบฝั่ง notification ไม่ทัน มันเลยเด้งมาทีหลังได้ครับ