Updates in Echtzeit in Erweiterungen

Echtzeitaktualisierungen bieten einen sofortigen Kommunikationspfad von Ihren Servern direkt zu Ihren Erweiterungsinstallationen. Sie können Daten senden und empfangen, sobald Ereignisse eintreten. Ob Instant Messaging, das Auslösen von Hintergrundaufgaben oder das Synchronisieren von Gerätedaten – er ist bei einer Reihe moderner Dienste ein wichtiger Vorgang. Es gibt eine Reihe von Optionen für die Echtzeitkommunikation in Chrome-Erweiterungen.

  • Web Push oder Push API ist ein Webstandard, mit dem Sie über eine Chrome-Erweiterung Nachrichten von jedem Push-Anbieter oder sogar von Ihrem eigenen Webserver senden und empfangen können.
  • chrome.gcm ist eine alte Erweiterungs-API, mit der Sie Nachrichten über Firebase Cloud Messaging senden und empfangen können.
  • WebSockets ist ein Protokoll auf niedriger Ebene, mit dem Sie eine bidirektionale Verbindung zwischen Ihrer Chrome-Erweiterung und Ihrem Server herstellen können.

Häufige Szenarien

Im Folgenden finden Sie einige häufige Szenarien in Chrome-Erweiterungen, in denen Echtzeitkommunikation von entscheidender Bedeutung ist:

Nutzer über Änderungen auf dem Laufenden halten

Wenn Sie Dateien, Einstellungen oder andere Informationen zwischen mehreren Nutzern synchronisieren, ist Web Push die perfekte Möglichkeit, unbeaufsichtigte Updates an Ihre Erweiterung zu senden, um sie aufzufordern, den Status vom Server zu aktualisieren.

Dürfen Nutzer Fehler oder Probleme melden? Sie können einen Push-Anbieter einbinden, um ihn direkt in Ihrer Erweiterung zu informieren, sobald Sie ein Update teilen.

Benachrichtigungen an Nutzer senden

Sie können Benachrichtigungen vollständig clientseitig senden. Wenn Sie jedoch eine serverseitige Logik dafür haben, wer, was, wo oder wann eine Benachrichtigung gesendet werden soll, ist Web-Push die zukunftssicherste Option.

Wenn Nachrichten nur an eine Untergruppe von Nutzern gesendet werden sollen, dann ist Push die beste Wahl. Firebase Cloud Messaging bietet zwar Topics (auch als Kanäle bezeichnet), ist aber nur in der HTTP Cloud Messaging API verfügbar. Dies unterscheidet sich von der Legacy-Version, die chrome.gcm verwendet. Wenn Sie allgemeine Nachrichten an alle Nutzer senden möchten, auch an Nutzer von älteren Chrome-Versionen (vor Chrome 121), ist chrome.gcm die ideale Option. chrome.gcm basiert auf den Legacy-Messaging-APIs von Firebase und wird seit über einem Jahrzehnt in Chrome unterstützt.

Mit Web Push oder chrome.gcm können Sie Benachrichtigungen an Nutzer senden, wenn etwas Wichtiges für ihr Konto passiert, z. B. wenn eine neue Nachricht eingeht oder eine Datei freigegeben wird.

Chat

Benötigen Sie regelmäßige wechselseitige Kommunikation? Dann ist ein WebSocket möglicherweise die beste Option für Sie. Sie stellt eine bidirektionale Verbindung zwischen Ihrer Erweiterung und Ihrem Server (oder sogar direkt zu anderen Nutzern) her. Damit können Sie Daten und Nachrichten in Echtzeit austauschen. Sie sind im Web eine gute Option, haben aber einige Einschränkungen bei Erweiterungen, die Sie berücksichtigen müssen, wenn Sie sie verwenden möchten.

Im weiteren Verlauf dieses Leitfadens sehen wir uns die verfügbaren Optionen genauer an.

Push-Benachrichtigungen mit der Push API

Mit der Push API können Sie einen beliebigen Push-Anbieter verwenden, um Push-Benachrichtigungen und Nachrichten zu senden. Ein Push von der Push API wird von Ihrem Service Worker verarbeitet, sobald er empfangen wird. Wurde die Erweiterung ausgesetzt, wird sie durch einen Push wieder aktiviert. Gehen Sie zur Verwendung in Erweiterungen genau so vor, wie Sie es im offenen Web verwenden würden.

Push-Benachrichtigungen mit chrome.gcm

Die chrome.gcm API stellt eine direkte Verbindung zu Firebase Cloud Messaging (FCM) her, einem Dienst zum Senden von Echtzeitaktualisierungen an Webanwendungen und mobile Apps. Dies ist eine Chrome-spezifische Erweiterungs-API, die viele Jahre hinzugefügt wurde, bevor Push in Browsern verfügbar war. Sie wurde mithilfe der Legacy-HTTP-APIs von Firebase entwickelt, die mittlerweile eingestellt wurden. Diese APIs wurden zwar an anderer Stelle verworfen, nicht in Erweiterungen. Sie werden auch in absehbarer Zeit weiterarbeiten. Da dies jedoch das alte Push-Back-End ist, fehlen Funktionen wie Topics.

Ein FCM-Back-End-Dienst ist eine harte Voraussetzung dafür, dass Benachrichtigungen Nutzer in Chrome erreichen, aber Sie müssen chrome.gcm nicht verwenden, um Nachrichten zu senden. Alle Push-Anbieter können mit Web-Push Nachrichten und Ereignisse an ein Firebase-Konto senden und empfangen. Dies ist zwar immer noch eine vollständig unterstützte Chrome-Erweiterungs-API, es empfiehlt sich jedoch, Webstandards wie die Push API erweiterungsspezifischen wie dieser zu bevorzugen. Wenn chrome.gcm für Ihren Anwendungsfall am besten geeignet ist, finden Sie in dieser detaillierten Anleitung Informationen dazu, wie Sie chrome.gcm von Grund auf neu einrichten.

Echtzeitnachrichten mit WebSockets

WebSockets sind seit über einem Jahrzehnt ein Eckpfeiler des Echtzeit-Messaging im Web. Sie sind die erste Wahl für Echtzeitereignisse im Web und ermöglichen damit eine kontinuierliche, bidirektionale Unterhaltung. WebSockets funktionieren mit einer Vielzahl von Erweiterungskomponenten, z. B. mit Content-Skripts, Pop-ups, Sidepanels und/oder Hintergrunddienst-Workern. Obwohl diese Erweiterungen im Allgemeinen eine gute Option im Web sind, gibt es einige Einschränkungen bei Erweiterungen, die Sie im Hinterkopf behalten sollten, wenn Sie sie verwenden möchten.

Eher nicht für Push-Benachrichtigungen geeignet

WebSockets werden auf der Webplattform ausgeführt, anstatt eine Erweiterungsplattform-API wie chrome.gcm zu verwenden. Chrome hat daher keine Möglichkeit, Ihre Erweiterung zu aktivieren, wenn eine WebSocket-Verbindung außerhalb der Erweiterung gestartet wird.

Nur aktive Verbindungen

Chrome sperrt Erweiterungen, die nicht verwendet werden, nach 30 Sekunden. In Chrome wird anhand einer Reihe von Heuristiken ermittelt, ob die Erweiterung verwendet wird. Eine davon ist eine aktive WebSocket-Verbindung. Chrome sperrt keine Erweiterung, die in den letzten 30 Sekunden eine WebSocket-Nachricht gesendet oder empfangen hat. Wenn Sie WebSockets in Ihrer Erweiterung verwenden und sicherstellen möchten, dass dieses nicht vorzeitig geschlossen wird, können Sie eine Heartbeat-Nachricht senden, um die Verbindung aufrechtzuerhalten. Dabei werden regelmäßig Nachrichten an den Server gesendet, um diesen und Chrome darüber zu informieren, dass Sie noch aktiv sind. Ein Beispiel dafür, wie Sie einen WebSocket auf unbestimmte Zeit aktiv halten, finden Sie in unserer WebSocket-Dokumentation.