Aktualizacje w czasie rzeczywistym w rozszerzeniach

Aktualizacje w czasie rzeczywistym zapewniają natychmiastową ścieżkę komunikacji z serwerów bezpośrednio do instalacji rozszerzeń. Możesz wysyłać i odbierać dane w miarę ich występowania. Bez względu na to, czy używasz go do czatu, uruchamiania zadań w tle czy synchronizowania danych na urządzeniu, jest to niezwykle ważna operacja, która wymaga korzystania z wielu nowoczesnych usług. Istnieje wiele opcji komunikacji w czasie rzeczywistym w rozszerzeniach do Chrome.

  • Web Push (interfejs API Push) to standard internetowy, który umożliwia wysyłanie i odbieranie wiadomości w rozszerzeniach do Chrome od dowolnego dostawcy usługi Push, a nawet z własnym serwerem WWW.
  • chrome.gcm to starszy interfejs API rozszerzenia, który umożliwia wysyłanie i odbieranie wiadomości za pomocą Komunikacji w chmurze Firebase (FCM).
  • WebSockets to protokół niskiego poziomu, który umożliwia nawiązywanie połączenia dwukierunkowego między rozszerzeniem do Chrome a serwerem.

Typowe scenariusze

Oto kilka typowych scenariuszy zastosowania rozszerzeń do Chrome, w przypadku których komunikacja w czasie rzeczywistym ma kluczowe znaczenie:

Na bieżąco informuj użytkowników o zmianach.

Jeśli synchronizujesz pliki, ustawienia lub inne informacje między wieloma użytkownikami, Web Push to idealny sposób na przesyłanie dyskretnych aktualizacji do rozszerzenia, dzięki czemu ono powiadomi je o konieczności zaktualizowania stanu z serwera.

Czy umożliwiasz użytkownikom zgłaszanie błędów i problemów? Możesz przeprowadzić integrację z dostawcą usługi Push, aby powiadomić go, gdy tylko pojawi się aktualizacja, bezpośrednio w rozszerzeniu.

Wyślij powiadomienia do użytkowników.

Możesz wysyłać powiadomienia po stronie klienta, ale jeśli dysponujesz logiką po stronie serwera, która określa, kto, co, gdzie i kiedy wysłać powiadomienie, Web Push to najprostsza opcja w przyszłości.

Do wysyłania wiadomości tylko do części użytkowników najlepiej wybrać push. Choć Firebase Cloud Messaging oferuje interfejs Topics (nazywany też kanałami), jest on dostępny tylko w interfejsie HTTP Cloud Messaging API. Różni się ona od starszej wersji, której używa chrome.gcm. Jeśli chcesz wysyłać ogólne wiadomości do wszystkich użytkowników, w tym użytkowników korzystających ze starszych wersji Chrome (sprzed Chrome 121), chrome.gcm jest idealnym rozwiązaniem. Technologia chrome.gcm, która bazuje na starszych interfejsach API do komunikacji Firebase, i jest obsługiwana w Chrome od ponad 10 lat.

Za pomocą Web Push lub chrome.gcm możesz wysyłać do użytkowników powiadomienia, gdy zdarzy się coś ważnego na ich koncie, na przykład gdy nadejdzie nowa wiadomość lub gdy zostanie udostępniony plik.

Komunikator internetowy

Potrzebujesz częstej, dwukierunkowej komunikacji? Najlepszym rozwiązaniem może być gniazdo sieciowe. Spowoduje to utworzenie dwukierunkowego połączenia między rozszerzeniem a serwerem (a nawet bezpośrednio z innymi użytkownikami). Pozwala na wymianę danych i wiadomości w czasie rzeczywistym. Chociaż ogólnie są one świetnym rozwiązaniem w internecie, mają pewne ograniczenia dotyczące rozszerzeń, o których warto pamiętać, jeśli zamierzasz z nich korzystać.

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

Powiadomienia push przez interfejs Push API

Za pomocą interfejsu Push API możesz wysyłać powiadomienia i wiadomości push z dowolnego dostawcy Push. Skrypt push z interfejsu Push API zostanie przetworzony przez skrypt service worker, gdy tylko zostanie odebrany. Jeśli rozszerzenie zostało zawieszone, wypchnięcie go wybudzi. Sposób korzystania z rozszerzeń jest dokładnie taki sam jak w otwartej sieci.

Powiadomienia push w chrome.gcm

Interfejs API chrome.gcm zapewnia bezpośrednie połączenie z usługą Komunikacja w chmurze Firebase (FCM) – usługą umożliwiającą wysyłanie w czasie rzeczywistym aktualizacji aplikacji internetowych i mobilnych. To interfejs API rozszerzeń do Chrome, który został dodany wiele lat przed wprowadzeniem Push w przeglądarkach. Do jego utworzenia wykorzystano starsze interfejsy API HTTP Firebase. Te interfejsy API zostały wycofane w innych miejscach, ale nie zostały wycofane w rozszerzeniach. Będą one działać przez najbliższą przyszłość. Ze względu na to, że jest to starszy backend push, nie ma on funkcji takich jak Topics.

Mimo że usługa backendu FCM jest obowiązkowym ustawieniem, aby powiadomienia docierały do użytkowników w Chrome, nie musisz używać usługi chrome.gcm, aby wysyłać wiadomości. Wszyscy dostawcy usługi Push mogą wysyłać i odbierać wiadomości oraz zdarzenia na konto Firebase za pomocą Web Push. Choć interfejs Chrome Extension API nadal jest w pełni obsługiwany, to lepiej jest preferować standardy internetowe, takie jak Push API, zamiast tego konkretnego rozszerzenia. Jeśli w Twoim przypadku najlepiej korzystać z chrome.gcm, skorzystaj ze szczegółowych instrukcji konfigurowania chrome.gcm od podstaw.

Komunikaty w czasie rzeczywistym przy użyciu protokołu WebSockets

WebSockets jest od ponad 10 lat podstawą komunikacji w internecie w czasie rzeczywistym. Rozwiązanie to sprawdza się jako opcja w przypadku wydarzeń w czasie rzeczywistym w internecie, ponieważ zapewnia ciągłą, dwukierunkową rozmowę. WebSockets działa w różnych komponentach rozszerzeń, np. w skryptach treści, wyskakujących okienkach, panelach bocznych i skryptach działania usługi w tle. Choć rozszerzenia te stanowią zwykle doskonałą opcję w internecie, mają pewne ograniczenia, o których należy pamiętać, jeśli planujesz z nich korzystać.

Nie sprawdza się w przypadku powiadomień push

Ponieważ WebSockets działa na platformie internetowej i nie korzysta z interfejsu API platformy rozszerzeń, takiego jak chrome.gcm, Chrome nie ma możliwości wybudzenia rozszerzenia, gdy połączenie Websocket zostało uruchomione poza nim.

Tylko aktywne połączenia

Chrome zawiesza rozszerzenia, które nie są używane, po 30 sekundach. Przeprowadzane przez Chrome analizy heurystyczne decydują o tym, czy rozszerzenie jest „używane”. Jednym z nich jest aktywne połączenie WebSocket. Chrome nie zawiesza rozszerzenia, które w ciągu ostatnich 30 sekund wysłało lub odebrało wiadomość WebSocket. Jeśli w rozszerzeniu używasz WebSockets i chcesz upewnić się, że rozszerzenie nie zostanie przedwcześnie zamknięte, możesz wysłać wiadomość heartbeat, aby utrzymać połączenie. Wiąże się to z wysyłaniem okresowych wiadomości na serwer, aby poinformować zarówno go, jak i Chrome o Twojej aktywności. Przykład sposobu utrzymywania dostępności serwera internetowego bez ograniczeń czasowych jest dostępny w naszej dokumentacji WebSocket.