FCM שליחת הודעות בנושא מסוים מאפשרת לכם לשלוח הודעה לכמה מכשירים שהמשתמשים שלהם הצטרפו לנושא מסוים. אתם כותבים הודעות בנושאים לפי הצורך, ו-FCM מטפל בניתוב ההודעה ובשליחתה בצורה מהימנה למכשירים הנכונים.
נקודות חשובות לגבי שליחת הודעות בנושאים:
- הכי מתאים למידע שזמין לציבור, כמו התראות על מזג האוויר.
- הודעות בנושאים עוברות אופטימיזציה לתפוקה ולא לזמן אחזור. כדי לשלוח הודעות במהירות ובאופן מאובטח למכשירים בודדים או לקבוצות קטנות, מטרגטים הודעות לטוקנים של רישום במקום לנושאים.
מכסות ומגבלות
הודעות בנושא תומכות במספר בלתי מוגבל של מינויים לכל נושא. עם זאת, FCM אוכף מגבלות בתחומים הבאים:
- כל מופע של אפליקציה יכול להירשם לעד 2,000 נושאים.
- אם אתם משתמשים בהרשמה בכמות גדולה כדי להירשם למופעי אפליקציות, כל בקשה מוגבלת ל-1,000 מופעי אפליקציות.
ויסות נתונים במינוי
הקצב להוספה או להסרה של מינויים לנושאים מוגבל ל-3,000 בקשות לשנייה לכל פרויקט.
התדירות של מינויים חדשים מוגבלת לכל פרויקט. אם שולחים יותר מדי בקשות למינוי בפרק זמן קצר, השרתים של FCM ישיבו עם תגובה 429 RESOURCE_EXHAUSTED
(QUOTA_EXCEEDED). ניסיון חוזר עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff).
ויסות נתונים (throttle) של fanout
הפצת הודעות היא תהליך של שליחת הודעה לכמה מכשירים, למשל כשמטרגטים נושאים וקבוצות, או כשמשתמשים בכלי ליצירת הודעות כדי לטרגט קהלים או פלחים של משתמשים.
ההפצה של ההודעה לא מתבצעת באופן מיידי, ולכן לפעמים מתבצעות כמה הפצות במקביל. מספר ההודעות שמופצות בו-זמנית לכל פרויקט מוגבל ל-1,000. לאחר מכן, יכול להיות שנדחה בקשות נוספות של fanout או שנדחה את ה-fanout של הבקשות עד שחלק מהבקשות שכבר נמצאות בתהליך יושלמו.
שיעור הפיצול בפועל מושפע ממספר הפרויקטים שמבקשים פיצולים בו-זמנית. קצב פיצול של 10,000 שאילתות לשנייה לפרויקט בודד הוא לא נדיר, אבל המספר הזה לא מובטח והוא תוצאה של העומס הכולל על המערכת. חשוב לציין שהקיבולת הזמינה של ה-fanout מחולקת בין הפרויקטים ולא בין בקשות ה-fanout. לכן, אם בפרויקט יש שני fanout בתהליך, כל fanout יראה רק חצי מהקצב הזמין של fanout. הדרך המומלצת למקסם את מהירות ההפצה היא להפעיל רק הפצה פעילה אחת בכל פעם.
השלבים הבאים
- איך מנהלים מינויים לנושאים באמצעות Admin SDK או מאפליקציית הלקוח
- איך שולחים הודעות לנושאים באמצעות Admin SDK או FCM v1 HTTP API.