Realtime updates zorgen voor een direct communicatiepad van uw servers rechtstreeks naar uw extensie-installaties. U kunt gegevens verzenden en ontvangen wanneer er gebeurtenissen plaatsvinden. Of u het nu gebruikt voor instant messaging, het activeren van achtergrondtaken of het synchroniseren van apparaatgegevens, het is een cruciale operatie met een aantal moderne services. Er zijn een aantal opties om realtime communicatie te hebben in Chrome-extensies.
- Web Push , of de Push API, is een webstandaard waarmee u berichten kunt verzenden en ontvangen in een Chrome-extensie van elke Push-provider , of zelfs met uw eigen webserver.
- chrome.gcm is een verouderde extensiespecifieke API waarmee u berichten kunt verzenden en ontvangen met Firebase Cloud Messaging.
- WebSockets is een protocol op laag niveau waarmee u een bidirectionele verbinding tussen uw Chrome-extensie en uw server kunt openen.
Veelvoorkomende scenario's
Hier volgen enkele veelvoorkomende scenario's in Chrome-extensies waarbij realtime communicatie van cruciaal belang is:
Houd gebruikers op de hoogte van wijzigingen.
Als u bestanden, instellingen of andere stukjes informatie tussen meerdere gebruikers synchroniseert, is Web Push de perfecte manier om stille updates naar uw extensie te sturen om deze te laten weten dat de status vanaf de server moet worden bijgewerkt.
Laat u gebruikers bugs of problemen melden? U kunt integreren met een Push-provider om hen direct op uw extensie te laten weten zodra u een update wilt delen.
Stuur meldingen naar gebruikers.
Hoewel u meldingen volledig aan de clientzijde kunt verzenden, is Web Push de meest toekomstbestendige optie als u logica aan de serverzijde heeft voor wie, wat, waar of wanneer u een melding moet verzenden.
Voor het verzenden van berichten naar slechts een deel van de gebruikers is Push de beste keuze. Hoewel Firebase Cloud Messaging onderwerpen aanbiedt (ook wel kanalen genoemd), is dit alleen beschikbaar in hun HTTP Cloud Messaging API. Dit wijkt af van de oudere versie die chrome.gcm
gebruikt. Als je brede berichten naar alle gebruikers wilt sturen, inclusief gebruikers van oudere versies van Chrome (vóór Chrome 121), dan is chrome.gcm
de ideale optie. chrome.gcm
is gebouwd op de oude Firebase-berichten-API's en wordt al meer dan tien jaar ondersteund in Chrome.
U kunt Web Push of chrome.gcm
gebruiken om meldingen naar gebruikers te sturen wanneer er iets belangrijks met hun account gebeurt, bijvoorbeeld wanneer er een nieuw bericht binnenkomt of wanneer een bestand wordt gedeeld.
Instant Messaging
Heeft u frequente tweerichtingscommunicatie nodig? Dan is een websocket wellicht de beste optie voor u. Het opent een bidirectionele verbinding tussen uw extensie en uw server (of zelfs rechtstreeks naar andere gebruikers). Hiermee kunt u in realtime gegevens en berichten uitwisselen. Hoewel ze over het algemeen een geweldige optie zijn op internet, hebben ze enkele beperkingen met betrekking tot extensies waarmee u rekening moet houden als u van plan bent ze te gebruiken.
In de rest van deze handleiding gaan we dieper in op de beschikbare opties.
Pushmeldingen met de Push API
Met behulp van de Push API kunt u met elke Push-provider pushmeldingen en berichten verzenden. Een push vanuit de Push API wordt door uw servicemedewerker verwerkt zodra deze binnenkomt. Als het toestel is opgeschort, zal een Push het toestel weer wakker maken. Het proces om het in extensies te gebruiken is precies hetzelfde als wat u op het open web zou gebruiken.
Pushmeldingen met chrome.gcm
De chrome.gcm API biedt een directe verbinding met Firebase Cloud Messaging (FCM), een service voor het verzenden van realtime updates naar webapplicaties en mobiele apps. Dit is een Chrome-specifieke extensie-API die vele jaren voordat Push beschikbaar was in browsers werd toegevoegd. Het is gebouwd met behulp van de verouderde HTTP API's van Firebase (nu verouderd). Hoewel deze API's elders verouderd zijn, zijn ze niet verouderd in extensies. Zij zullen de komende tijd blijven werken. Omdat dit echter de oudere push-backend is, ontbreken er functies zoals Topics .
Hoewel een FCM-backend-service een harde vereiste is voor meldingen om gebruikers in Chrome te bereiken, hoeft u chrome.gcm
niet te gebruiken om berichten te verzenden. Alle Push-providers kunnen via de web-Push berichten en gebeurtenissen naar een Firebase-account verzenden en ontvangen. Hoewel dit nog steeds een volledig ondersteunde Chrome Extension API is, kunt u het beste de voorkeur geven aan webstandaarden zoals de Push API boven extensiespecifieke standaarden zoals deze. Als uw gebruiksscenario het beste geschikt is voor chrome.gcm, vindt u hier een gedetailleerde handleiding over hoe u chrome.gcm helemaal opnieuw kunt instellen.
Realtime berichten met WebSockets
WebSockets zijn al meer dan tien jaar een hoeksteen van realtime berichtenuitwisseling op internet. Ze zijn de goto-optie geweest voor realtime evenementen op internet en zorgen voor een continu, bidirectioneel gesprek. WebSockets werken in een verscheidenheid aan uitbreidingscomponenten , of het nu gaat om inhoudsscripts , pop-ups , zijpanelen en/of achtergrondservicemedewerkers . Hoewel ze over het algemeen een geweldige optie zijn op internet, hebben ze enkele beperkingen met betrekking tot extensies waarmee u rekening moet houden als u van plan bent ze te gebruiken.
Niet geweldig voor pushmeldingen
Omdat WebSockets op het webplatform draaien, in plaats van een extensieplatform-API zoals chrome.gcm
te gebruiken, kan Chrome uw extensie niet activeren wanneer een Websocket-verbinding buiten uw extensie wordt gestart.
Alleen actieve verbindingen
Chrome schort extensies die niet worden gebruikt na 30 seconden op. Chrome gebruikt een aantal heuristieken om te bepalen of de extensie "in gebruik" is. Eén daarvan is een actieve WebSocket-verbinding. Chrome schort geen extensie op die in de afgelopen 30 seconden een WebSocket-bericht heeft verzonden of ontvangen. Als u WebSockets in uw extensie gebruikt en ervoor moet zorgen dat deze niet voortijdig wordt gesloten, kunt u een hartslagbericht sturen om de verbinding in stand te houden. Hierbij worden periodieke berichten naar de server verzonden, zodat zowel Chrome als Chrome weten dat u nog steeds actief bent. Een voorbeeld van hoe u een websocket voor onbepaalde tijd in leven kunt houden, is beschikbaar in onze WebSocket-documentatie .