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

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

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

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

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

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

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

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

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

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

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

אפשר להשתמש ב-Web Push או ב-chrome.gcm כדי לשלוח התראות למשתמשים כשמשהו חשוב בחשבון שלהם, כמו למשל כשנשלחת הודעה חדשה או כשהקובץ משותף.

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

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

בשאר המדריך הזה נבחן מקרוב את האפשרויות הזמינות.

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

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

התראות באמצעות chrome.gcm

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

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

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

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

לא מתאים להתראות

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

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

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