Aktualizacje w czasie rzeczywistym w rozszerzeniach

Aktualizacje w czasie rzeczywistym zapewniają natychmiastową ścieżkę komunikacji z serwerów bezpośrednio do instalacji rozszerzenia. Możesz wysyłać i odbierać dane w miarę występowania zdarzeń. Niezależnie od tego, czy używasz go do przesyłania wiadomości błyskawicznych, wywoływania zadań w tle czy synchronizowania danych na urządzeniu, jest to kluczowa operacja w wielu nowoczesnych usługach. Rozszerzenia Chrome oferują kilka opcji komunikacji w czasie rzeczywistym.

  • Web Push, czyli Push API, to standard internetowy, który umożliwia wysyłanie i odbieranie wiadomości w rozszerzeniu do Chrome od dowolnego dostawcy usługi Push, a nawet z własnego serwera internetowego.
  • browser.gcm to starszy interfejs API rozszerzenia, który umożliwia wysyłanie i odbieranie wiadomości za pomocą Komunikacji w chmurze Firebase.
  • WebSockets to protokół niskiego poziomu, który umożliwia otwieranie dwukierunkowego połączenia między rozszerzeniem do Chrome a serwerem.

Typowe scenariusze

Oto kilka typowych scenariuszy w rozszerzeniach do Chrome, w których komunikacja w czasie rzeczywistym ma kluczowe znaczenie:

Informuj użytkowników o zmianach.

Jeśli synchronizujesz pliki, ustawienia lub inne informacje między wieloma użytkownikami, usługa Wiadomości ze stron internetowych jest idealnym sposobem na wysyłanie cichych aktualizacji do rozszerzenia, aby informować je o konieczności aktualizacji stanu z serwera.

Czy umożliwiasz użytkownikom zgłaszanie błędów lub problemów? Możesz zintegrować się z dostawcą powiadomień push, aby informować go o aktualizacjach bezpośrednio w rozszerzeniu.

wysyłać powiadomienia do użytkowników,

Powiadomienia możesz wysyłać w całości po stronie klienta, ale jeśli masz logikę po stronie serwera, która określa, komu, co, gdzie i kiedy wysłać powiadomienie, to Wiadomości ze stron internetowych są najbardziej przyszłościową opcją.

Jeśli chcesz wysyłać wiadomości tylko do podzbioru użytkowników, najlepszym wyborem będą powiadomienia push. Komunikacja w chmurze Firebase (FCM) oferuje tematy (znane też jako kanały), ale są one dostępne tylko w interfejsie HTTP Cloud Messaging API. Różni się od starszej wersji, której używa browser.gcm. Jeśli chcesz wysyłać wiadomości do wszystkich użytkowników, w tym tych, którzy korzystają ze starszych wersji Chrome (przed Chrome 121), idealnym rozwiązaniem będzie browser.gcm. browser.gcm, oparty na starszych interfejsach API Firebase Messaging, jest obsługiwany w Chrome od ponad 10 lat.

Możesz używać powiadomień push w internecie lub browser.gcm, aby wysyłać użytkownikom powiadomienia o ważnych zdarzeniach na ich koncie, np. o przyjściu nowej wiadomości lub udostępnieniu pliku.

Komunikatory

Potrzebujesz częstej komunikacji dwukierunkowej? W takim przypadku najlepszym rozwiązaniem może być gniazdo internetowe. Otwiera dwukierunkowe połączenie między rozszerzeniem a serwerem (lub nawet bezpośrednio z innymi użytkownikami). Umożliwia wymianę danych i wiadomości w czasie rzeczywistym. Są one świetną opcją w internecie, ale mają pewne ograniczenia w przypadku rozszerzeń, o których musisz pamiętać, jeśli planujesz ich używać.

W dalszej części tego przewodnika przyjrzymy się bliżej dostępnym opcjom.

Powiadomienia push za pomocą interfejsu Push API

Za pomocą Push API możesz używać dowolnego dostawcy powiadomień push do wysyłania powiadomień i wiadomości push. Powiadomienie z interfejsu Push API zostanie przetworzone przez skrypt service worker natychmiast po jego otrzymaniu. Jeśli rozszerzenie zostało zawieszone, powiadomienie push je wybudzi. Proces używania go w rozszerzeniach jest dokładnie taki sam jak w przypadku otwartej sieci.

Powiadomienia push z użyciem browser.gcm

Interfejs browser.gcm API zapewnia bezpośrednie połączenie z Komunikacją w chmurze Firebase (FCM), czyli usługą do wysyłania aktualizacji w czasie rzeczywistym do aplikacji internetowych i mobilnych. Jest to interfejs API rozszerzeń do Chrome, który został dodany wiele lat przed udostępnieniem w przeglądarkach interfejsu Push. Został on utworzony przy użyciu starszych interfejsów HTTP API Firebase (obecnie wycofanych). Chociaż te interfejsy API są w innych miejscach wycofane, w przypadku rozszerzeń nie są wycofane. które będą nadal działać w najbliższej przyszłości. Jest to jednak starsza wersja backendu powiadomień push, która nie ma takich funkcji jak tematy.

Usługa backendu FCM jest niezbędna, aby powiadomienia docierały do użytkowników Chrome, ale do wysyłania wiadomości nie musisz używać browser.gcm. Wszyscy dostawcy powiadomień push mogą wysyłać i odbierać wiadomości oraz zdarzenia na konto Firebase za pomocą powiadomień push w internecie. Jest to nadal w pełni obsługiwany interfejs API rozszerzeń Chrome, ale zalecamy korzystanie ze standardów internetowych, takich jak Push API, zamiast interfejsów API specyficznych dla rozszerzeń. Jeśli w Twoim przypadku najlepiej sprawdzi się browser.gcm, zapoznaj się ze szczegółową instrukcją konfiguracji browser.gcm od podstaw.

Wiadomości w czasie rzeczywistym z użyciem WebSocket

WebSockets od ponad dekady są podstawą przesyłania wiadomości w czasie rzeczywistym w internecie. Są one najczęściej wybieraną opcją w przypadku wydarzeń w czasie rzeczywistym w internecie, ponieważ umożliwiają ciągłą, dwukierunkową rozmowę. WebSockety działają w różnych komponentach rozszerzeń, takich jak skrypty treści, wyskakujące okienka, panele boczne czy pracownicy usług w tle. Chociaż są one świetną opcją w internecie, mają pewne ograniczenia w przypadku rozszerzeń, o których musisz pamiętać, jeśli planujesz ich używać.

Nie sprawdza się w przypadku powiadomień push

Ponieważ WebSockets działają na platformie internetowej, a nie przy użyciu interfejsu API platformy rozszerzeń, takiego jak browser.gcm, Chrome nie może wybudzić rozszerzenia, gdy połączenie WebSocket zostanie nawiązane poza nim.

Tylko aktywne połączenia

Chrome zawiesza rozszerzenia, które nie są używane, po 30 sekundach. Chrome korzysta z wielu heurystyk, aby określić, czy rozszerzenie jest „używane”. Jedną z nich jest aktywne połączenie WebSocket. Chrome nie zawiesi rozszerzenia, które w ciągu ostatnich 30 sekund wysłało lub odebrało wiadomość WebSocket. Jeśli używasz w rozszerzeniu połączeń WebSocket i musisz mieć pewność, że nie zostaną one przedwcześnie zamknięte, możesz wysyłać sygnał, aby utrzymać połączenie. Wymaga to wysyłania okresowych wiadomości do serwera, aby poinformować go i Chrome, że nadal jesteś aktywny. Przykład tego, jak utrzymać połączenie WebSocket na czas nieokreślony, znajdziesz w naszej dokumentacji WebSocket.