การส่งข้อความตามหัวข้อ FCM ช่วยให้คุณส่งข้อความไปยังอุปกรณ์หลายเครื่อง ที่เลือกรับข้อมูลตามหัวข้อที่เฉพาะเจาะจงได้ คุณเขียนข้อความตามหัวข้อได้ตามต้องการ และ FCM จะจัดการการกำหนดเส้นทางและการส่งข้อความไปยัง อุปกรณ์ที่เหมาะสมอย่างน่าเชื่อถือ
ประเด็นสำคัญเกี่ยวกับการส่งข้อความตามหัวข้อ
- เหมาะที่สุดสำหรับข้อมูลที่เปิดเผยต่อสาธารณะ เช่น การแจ้งเตือนสภาพอากาศ
- ระบบจะเพิ่มประสิทธิภาพข้อความตามหัวข้อเพื่อเพิ่มปริมาณข้อมูลที่ส่งได้ต่อหน่วยเวลา (Throughput) แทนที่จะลดเวลาในการตอบสนอง (Latency) หากต้องการส่งข้อความไปยังอุปกรณ์เครื่องเดียวหรือกลุ่มเล็กๆ อย่างรวดเร็ว และปลอดภัย ให้กำหนดเป้าหมายข้อความไปยังโทเค็นการลงทะเบียน แทนหัวข้อ
โควต้าและขีดจำกัด
การส่งข้อความตามหัวข้อรองรับการสมัครรับข้อมูลได้ไม่จำกัดสำหรับแต่ละหัวข้อ อย่างไรก็ตาม FCM จะบังคับใช้ขีดจำกัดในส่วนต่อไปนี้
- อินสแตนซ์ของแอป 1 รายการสมัครรับข้อมูลหัวข้อได้ไม่เกิน 2,000 หัวข้อ
- หากคุณใช้การสมัครรับข้อมูลแบบเป็นชุด เพื่อสมัครรับข้อมูลอินสแตนซ์ของแอป คำขอแต่ละรายการจะจำกัดไว้ที่ 1, 000 อินสแตนซ์ของแอป
การควบคุมการสมัครรับข้อมูล
อัตราการเพิ่มหรือนำการสมัครรับข้อมูลหัวข้อออกจะจำกัดไว้ที่ 3,000 QPS ต่อโปรเจ็กต์
ความถี่ของการสมัครรับข้อมูลใหม่จะจำกัดอัตราต่อโปรเจ็กต์ หากคุณส่งคำขอสมัครรับข้อมูลมากเกินไปในช่วงเวลาสั้นๆ เซิร์ฟเวอร์จะตอบกลับด้วย ("QUOTA_EXHAUSTED")การตอบกลับFCM429 RESOURCE_EXHAUSTED ลองอีกครั้งโดยใช้ Exponential Backoff
การควบคุมการส่งข้อความไปยังอุปกรณ์หลายเครื่อง
การส่งข้อความไปยังอุปกรณ์หลายเครื่องคือกระบวนการส่งข้อความไปยังอุปกรณ์หลายเครื่อง เช่น เมื่อคุณกำหนดเป้าหมายหัวข้อและกลุ่ม หรือเมื่อคุณใช้ เครื่องมือเขียนข้อความแจ้งเตือน เพื่อกำหนดเป้าหมายกลุ่มเป้าหมายหรือกลุ่มผู้ใช้
การส่งข้อความไปยังอุปกรณ์หลายเครื่องไม่ได้เกิดขึ้นทันที ดังนั้นบางครั้งคุณอาจมีการส่งข้อความไปยังอุปกรณ์หลายเครื่องหลายรายการพร้อมกัน เราจำกัดจำนวนการส่งข้อความไปยังอุปกรณ์หลายเครื่องพร้อมกันต่อโปรเจ็กต์ไว้ที่ 1,000 รายการ หลังจากนั้น เราอาจปฏิเสธคำขอส่งข้อความไปยังอุปกรณ์หลายเครื่องเพิ่มเติมหรือเลื่อนการส่งข้อความไปยังอุปกรณ์หลายเครื่องของคำขอจนกว่าการส่งข้อความไปยังอุปกรณ์หลายเครื่องที่ดำเนินการอยู่จะเสร็จสมบูรณ์
อัตราการส่งข้อความไปยังอุปกรณ์หลายเครื่องที่ทำได้จริงจะได้รับผลกระทบจากจำนวนโปรเจ็กต์ที่ขอส่งข้อความไปยังอุปกรณ์หลายเครื่องในเวลาเดียวกัน อัตราการส่งข้อความไปยังอุปกรณ์หลายเครื่องที่ 10,000 QPS สำหรับโปรเจ็กต์แต่ละโปรเจ็กต์ไม่ใช่เรื่องแปลก แต่ตัวเลขดังกล่าวไม่ได้รับประกันและเป็นผลมาจากภาระงานทั้งหมดในระบบ โปรดทราบว่าความจุ Fanout ที่มีอยู่จะแบ่งให้กับโปรเจ็กต์ต่างๆ ไม่ใช่คำขอ Fanout ดังนั้น หากโปรเจ็กต์ของคุณมีการส่งข้อความไปยังอุปกรณ์หลายเครื่อง 2 รายการที่ดำเนินการอยู่ การส่งข้อความไปยังอุปกรณ์หลายเครื่องแต่ละรายการจะเห็นอัตราการส่งข้อความไปยังอุปกรณ์หลายเครื่องที่มีอยู่เพียงครึ่งเดียว วิธีที่แนะนำในการเพิ่มความเร็วในการส่งข้อความไปยังอุปกรณ์หลายเครื่องให้สูงสุดคือการมีการส่งข้อความไปยังอุปกรณ์หลายเครื่องที่ใช้งานอยู่เพียงรายการเดียวในแต่ละครั้ง
ขั้นตอนถัดไป
- ดูวิธีจัดการการสมัครรับข้อมูลหัวข้อ โดยใช้ Admin SDK หรือจากแอปไคลเอ็นต์
- ดูวิธีส่งข้อความไปยังหัวข้อ โดยใช้ Admin SDK หรือ FCM v1 HTTP API