עדכונים בזמן אמת בתוספים

העדכונים בזמן אמת מספקים נתיב תקשורת מיידי מהשרתים שלכם ישירות להתקנות של התוסף. אתם יכולים לשלוח ולקבל נתונים בזמן שהאירועים מתרחשים. בין אם משתמשים בו להעברת הודעות מיידיות, להפעלת משימות ברקע או לסנכרון נתונים במכשיר, מדובר בפעולה קריטית במספר שירותים מודרניים. יש כמה אפשרויות לתקשורת בזמן אמת בתוספים ל-Chrome.

  • ‫Web Push, או Push API, הוא תקן אינטרנט שמאפשר לשלוח ולקבל הודעות בתוסף Chrome מכל ספק Push, או אפילו באמצעות שרת האינטרנט שלכם.
  • ‫browser.gcm הוא API ספציפי לתוסף מדור קודם שמאפשר לשלוח ולקבל הודעות באמצעות העברת הודעות בענן ב-Firebase.
  • ‫WebSockets הוא פרוטוקול ברמה נמוכה שמאפשר לכם לפתוח חיבור דו-כיווני בין תוסף ל-Chrome לבין השרת שלכם.

תרחישים נפוצים

הנה כמה תרחישים נפוצים בתוספים ל-Chrome שבהם תקשורת בזמן אמת היא קריטית:

חשוב לעדכן את המשתמשים לגבי השינויים.

אם אתם מסנכרנים קבצים, הגדרות או מידע אחר בין כמה משתמשים, השירות 'דחיפת הודעות מדפי אינטרנט' הוא הדרך המושלמת לשלוח עדכונים שקטים לתוסף כדי לעדכן את המצב מהשרת.

האם אתם מאפשרים למשתמשים לדווח על באגים או בעיות? אתם יכולים לבצע שילוב עם ספק של הודעות Push כדי לעדכן אותו ברגע שיש לכם עדכון לשתף, ישירות בתוסף.

שליחת התראות למשתמשים.

אפשר לשלוח התראות בצד הלקוח בלבד, אבל אם יש לכם לוגיקה בצד השרת לגבי מי צריך לקבל התראה, מה ההתראה צריכה להכיל, לאן היא צריכה להישלח ומתי, אז השירות 'דחיפת הודעות מדפי אינטרנט' הוא האפשרות הכי מתאימה לשימוש עתידי.

אם רוצים לשלוח הודעות רק לקבוצה מצומצמת של משתמשים, עדיף להשתמש ב-Push. למרות שהעברת הודעות בענן ב-Firebase מציעה נושאים (שנקראים גם ערוצים), הם זמינים רק ב-HTTP Cloud Messaging API. הגרסה הזו שונה מגרסת דור קודם שמשמשת את browser.gcm. אם רוצים לשלוח הודעות רחבות לכל המשתמשים, כולל אלה שמשתמשים בגרסאות מדור קודם של Chrome (לפני Chrome 121), אז browser.gcm היא האפשרות האידיאלית. התכונה browser.gcm מבוססת על ממשקי ה-API של Firebase Messaging מדור קודם, והיא נתמכת ב-Chrome כבר יותר מעשור.

אתם יכולים להשתמש בהתראות מאפליקציית האינטרנט או ב-browser.gcm כדי לשלוח התראות למשתמשים כשקורה משהו חשוב בחשבון שלהם, למשל כשמתקבלת הודעה חדשה או כשמשתפים קובץ.

העברת הודעות מיידיות

צריכים תקשורת דו-כיוונית בתדירות גבוהה? אז יכול להיות ש-WebSocket היא האפשרות הכי טובה בשבילכם. היא פותחת חיבור דו-כיווני בין התוסף לבין השרת (או אפילו ישירות למשתמשים אחרים). הוא מאפשר להחליף נתונים והודעות בזמן אמת. הם אמנם מהווים אפשרות מצוינת לשימוש באינטרנט באופן כללי, אבל יש להם כמה מגבלות כשמשתמשים בתוספים, וכדאי לזכור את זה אם אתם מתכננים להשתמש בהם.

בהמשך המדריך נסביר על האפשרויות הזמינות.

התראות באמצעות Push API

באמצעות Push API, אפשר להשתמש בכל ספק של התראות כדי לשלוח התראות והודעות. הודעת פוש מ-Push API תעובד על ידי Service Worker ברגע שהיא תתקבל. אם התוסף הושעה, הודעת Push תפעיל אותו מחדש. התהליך לשימוש בו בתוספים זהה בדיוק לשימוש בו באינטרנט הפתוח.

התראות בדחיפה עם browser.gcm

ה-API‏ browser.gcm מספק חיבור ישיר ל-Firebase Cloud Messaging‏ (FCM), שירות לשליחת עדכונים בזמן אמת לאפליקציות אינטרנט ולאפליקציות לנייד. זהו ממשק API ספציפי לתוספים ל-Chrome, שנוסף הרבה שנים לפני ש-Push היה זמין בדפדפנים. הוא נבנה באמצעות ממשקי HTTP API מדור קודם של Firebase (שכבר יצאו משימוש). למרות שהוצאנו משימוש את ממשקי ה-API האלה במקומות אחרים, לא הוצאנו אותם משימוש בתוספים. הן ימשיכו לפעול בעתיד הנראה לעין. עם זאת, מכיוון שמדובר בשרת קצה (backend) מדור קודם לשליחת הודעות פוש, חסרות בו תכונות כמו נושאים.

שירות קצה עורפי של FCM הוא דרישה הכרחית כדי שההתראות יגיעו למשתמשים ב-Chrome, אבל לא צריך להשתמש ב-browser.gcm כדי לשלוח הודעות. כל ספקי ה-Push יכולים לשלוח ולקבל הודעות ואירועים לחשבון Firebase באמצעות Push באינטרנט. מדובר בממשק API של תוסף Chrome שעדיין נתמך באופן מלא, אבל מומלץ להשתמש בסטנדרטים של האינטרנט כמו Push API במקום בממשקי API ספציפיים לתוספים כמו זה. אם תרחיש השימוש שלכם מתאים יותר ל-browser.gcm, יש מדריך מפורט להגדרה של browser.gcm מאפס.

הודעות בזמן אמת באמצעות WebSockets

‫WebSockets הם אבן דרך בהעברת הודעות בזמן אמת באינטרנט כבר יותר מעשור. הם היו האפשרות המועדפת לאירועים בזמן אמת באינטרנט, וסיפקו שיחה רציפה ודו-כיוונית. פרוטוקול WebSockets פועל במגוון רכיבי תוספים, כמו סקריפטים של תוכן, חלונות קופצים, חלוניות צדדיות או סביבת שירות (service worker) ברקע. הם אופציה מצוינת לשימוש באינטרנט באופן כללי, אבל יש להם כמה מגבלות שצריך לזכור אם מתכננים להשתמש בהם.

לא מתאים במיוחד להתראות

מכיוון ש-WebSockets פועלים בפלטפורמת האינטרנט, ולא באמצעות API של פלטפורמת תוספים כמו browser.gcm, ל-Chrome אין דרך להפעיל את התוסף כשמתחיל חיבור Websocket מחוץ לתוסף.

חיבורים פעילים בלבד

אחרי 30 שניות, Chrome משעה תוספים שלא נמצאים בשימוש. כדי לקבוע אם התוסף נמצא בשימוש, Chrome משתמש במספר היוריסטיקות, שאחת מהן היא חיבור WebSocket פעיל. ‫Chrome לא ישעה תוסף ששלח או קיבל הודעת WebSocket ב-30 השניות האחרונות. אם אתם משתמשים ב-WebSockets בתוסף שלכם, ואתם רוצים לוודא שהחיבור לא ייסגר לפני הזמן, אתם יכולים לשלוח הודעת דופק כדי לשמור על החיבור. התהליך הזה כולל שליחת הודעות תקופתיות לשרת, כדי שגם השרת וגם Chrome יידעו שאתם עדיין פעילים. דוגמה לאופן שבו אפשר לשמור על פעילות של WebSocket ללא הגבלת זמן זמינה במסמכי ה-WebSocket שלנו.