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ę występowania zdarzeń. Niezależnie od tego, czy używasz jej do obsługi wiadomości czatu, wyzwalania zadań w tle czy synchronizowania danych na urządzeniu, ma kluczowe znaczenie w przypadku wielu nowoczesnych usług. Komunikacja w czasie rzeczywistym w rozszerzeniach do Chrome jest dostępna na kilka sposobów.

  • Web Push API (w skrócie Push API) to standard internetowy, który umożliwia wysyłanie i odbieranie wiadomości za pomocą rozszerzeń do Chrome pochodzących od dowolnego dostawcy funkcji push, a nawet za pomocą własnego serwera WWW.
  • chrome.gcm to starszy interfejs API przeznaczony dla rozszerzeń, 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ązanie dwukierunkowego połączenia między rozszerzeniem do Chrome a serwerem.

Typowe scenariusze

Oto kilka typowych sytuacji, w których kluczowe znaczenie ma komunikacja w czasie rzeczywistym:

Informuj użytkowników o zmianach.

Jeśli synchronizujesz pliki, ustawienia lub inne informacje między wieloma użytkownikami, Web Push to doskonały sposób na wysyłanie dyskretnych aktualizacji rozszerzenia, aby poinformować je o konieczności aktualizacji stanu z serwera.

Czy pozwalasz użytkownikom zgłaszać błędy lub problemy? Możesz przeprowadzić integrację z dostawcą funkcji push, aby powiadamiać o nowościach bezpośrednio w rozszerzeniu, gdy tylko pojawi się coś nowego do udostępnienia.

Wysyłaj powiadomienia do użytkowników.

Możesz wysyłać powiadomienia po stronie klienta, ale jeśli masz logikę po stronie serwera, która określa, kto, co, gdzie i kiedy wysyłać powiadomienia, to najbardziej sprawdzi się opcja Web Push.

Jeśli chcesz wysyłać wiadomości tylko do określonej grupy użytkowników, najlepszym wyborem jest tryb push. Chociaż usługa Firebase Cloud Messaging oferuje usługę Topics (nazywany też kanałami), jest ona dostępna tylko w HTTP Cloud Messaging API. Różni się ona od starszej wersji, z której korzysta chrome.gcm. Jeśli chcesz wysyłać szerokie wiadomości do wszystkich użytkowników, także do użytkowników korzystających ze starszych wersji Chrome (starszych niż 121), chrome.gcm jest idealnym rozwiązaniem. chrome.gcm, oparty na starszych interfejsach API komunikacji Firebase, jest obsługiwany w Chrome od ponad 10 lat.

Za pomocą Web Push lub chrome.gcm możesz wysyłać użytkownikom powiadomienia, gdy wydarzy się coś ważnego dla ich konta, na przykład po otrzymaniu nowej wiadomości lub udostępnieniu pliku.

Komunikator internetowy

Potrzebujesz częstej, dwukierunkowej komunikacji? W takim przypadku najlepszym rozwiązaniem może być gniazdo sieciowe. Spowoduje to otwarcie dwukierunkowego połączenia między rozszerzeniem a serwerem (lub nawet bezpośrednio z innymi użytkownikami). Umożliwia wymianę danych i wiadomości w czasie rzeczywistym. Są świetnym rozwiązaniem w internecie, ale wiążą się z pewnymi ograniczeniami, o których trzeba pamiętać, jeśli zamierzasz z nich korzystać.

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

Powiadomienia push przez Push API

Za pomocą interfejsu Push API możesz używać dowolnego dostawcy usługi Push do wysyłania powiadomień push i wiadomości. Komunikat push z interfejsu Push API zostanie przetworzony przez skrypt service worker natychmiast po jego otrzymaniu. Jeśli rozszerzenie zostało zawieszone, wybudzi je z powrotem. Sposób używania rozszerzenia jest taki sam jak w otwartej sieci.

Powiadomienia push przy użyciu chrome.gcm

Interfejs API chrome.gcm zapewnia bezpośrednie połączenie z Firebase Cloud Messaging (FCM) – usługą służącą do wysyłania w czasie rzeczywistym aktualizacji aplikacji internetowych i aplikacji mobilnych. Jest to interfejs API rozszerzenia specyficzny dla Chrome, który został dodany wiele lat przed udostępnieniem Push w przeglądarkach. Został on utworzony za pomocą starszych interfejsów API HTTP Firebase (obecnie wycofanych). W pozostałych regionach wycofujemy te interfejsy API, ale w rozszerzeniach nie są one wycofywane. Będą one działać w najbliższej przyszłości. Jest to jednak starszy backend push, więc nie ma w nim takich funkcji jak Topics.

Chociaż usługa backendu FCM jest niezbędna, aby powiadomienia docierały do użytkowników w Chrome, nie musisz używać usługi chrome.gcm do wysyłania wiadomości. Wszyscy dostawcy funkcji push mogą wysyłać i odbierać komunikaty oraz zdarzenia na konto Firebase za pomocą Web Push. Chociaż jest to nadal w pełni obsługiwany interfejs Chrome Extension API, zalecamy preferowanie standardów internetowych, takich jak Push API, od tych związanych z rozszerzeniami. Jeśli w Twoim przypadku najlepiej jest korzystać z chrome.gcm, skorzystaj ze szczegółowej instrukcji konfigurowania chrome.gcm od podstaw.

Wysyłanie wiadomości w czasie rzeczywistym przez WebSockets

WebSockets jest od ponad 10 lat podstawą przesyłania wiadomości w internecie w czasie rzeczywistym. Stały się one podstawowym narzędziem do prowadzenia zdarzeń w czasie rzeczywistym w internecie, zapewniając dwukierunkową komunikację w sposób ciągły. Protokół WebSockets działa w różnych komponentach rozszerzeń, takich jak skrypty treści, wyskakujące okienka, panele boczne oraz zasoby robocze usługi działające w tle. Są one ogólnie dobrym rozwiązaniem w internecie, ale mają pewne ograniczenia związane z rozszerzeniami, o których trzeba pamiętać, jeśli zamierzasz z nich korzystać.

Nie nadaje się do wyświetlania powiadomień push

Protokół WebSockets działa na platformie internetowej, zamiast korzystać z interfejsu API platformy rozszerzeń, np. chrome.gcm, Chrome nie ma możliwości wybudzenia rozszerzenia, gdy połączenie Websocket zostanie rozpoczęte poza rozszerzeniem.

Tylko aktywne połączenia

Chrome zawiesza rozszerzenia, które nie są używane, po upływie 30 sekund. Chrome przechodzi szereg testów heurystycznych, aby określić, czy rozszerzenie jest „używane”. Jednym z nich jest aktywne połączenie WebSocket. Chrome nie zawiesi rozszerzenia, które wysłało lub odebrało wiadomość WebSocket w ciągu ostatnich 30 sekund. Jeśli w rozszerzeniu używasz protokołu WebSockets i chcesz mieć pewność, że nie zostanie ono przedwcześnie zamknięte, możesz wysłać wiadomość t-beat, aby utrzymać połączenie. Wiąże się to z okresowym wysyłaniem wiadomości do serwera, informując zarówno go, jak i Chrome, że użytkownik jest aktywny. Przykład utrzymywania aktywności webhooka bez ograniczeń czasowych znajdziesz w naszej dokumentacji WebSocket.