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 ich do czatów, wywoływania zadań w tle czy synchronizowania danych na urządzeniu, jest to krytyczna operacja w przypadku wielu nowoczesnych usług. Istnieje kilka opcji komunikacji w czasie rzeczywistym w rozszerzeniach Chrome.

  • Web Push lub Push API to standard internetowy, który umożliwia wysyłanie i odbieranie wiadomości w rozszerzeniu do Chrome od dowolnego dostawcy Push, a nawet z własnego serwera WWW.
  • chrome.gcm to starszy interfejs API specyficzny dla rozszerzeń, 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 Chrome, w których komunikacja w czasie rzeczywistym jest kluczowa:

Informowanie 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 wysyłanie cichych aktualizacji do rozszerzenia, aby poinformować je o konieczności zaktualizowania stanu z serwera.

Czy umożliwiasz użytkownikom zgłaszanie błędów lub problemów? Możesz zintegrować się z dostawcą Push, aby informować go o dostępności aktualizacji bezpośrednio w rozszerzeniu.

Wysyłanie powiadomień do użytkowników.

Powiadomienia możesz wysyłać całkowicie po stronie klienta, ale jeśli masz logikę po stronie serwera, która określa, komu, co, gdzie i kiedy wysłać powiadomienie, Web Push jest najbardziej przyszłościowym rozwiązaniem.

Jeśli chcesz wysyłać wiadomości tylko do podzbioru użytkowników, najlepszym rozwiązaniem jest Push. Komunikacja w chmurze Firebase oferuje co prawda tematy (znane też jako kanały), ale są one dostępne tylko w interfejsie HTTP Cloud Messaging API. Różni się on od starszej wersji używanej przez chrome.gcm. Jeśli chcesz wysyłać ogólne wiadomości do wszystkich użytkowników, w tym do tych, którzy korzystają ze starszych wersji Chrome (sprzed Chrome 121), idealnym rozwiązaniem jest chrome.gcm. Interfejs chrome.gcm oparty na starszych interfejsach Firebase API jest obsługiwany w Chrome od ponad dekady.

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

Czat

Potrzebujesz częstej, dwukierunkowej komunikacji? W takim razie najlepszym rozwiązaniem może być gniazdo internetowe. Otwiera ono dwukierunkowe połączenie między rozszerzeniem a serwerem (a nawet bezpośrednio z innymi użytkownikami). Umożliwia wymianę danych i wiadomości w czasie rzeczywistym. Chociaż są one świetnym rozwiązaniem w internecie, 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ą Push API

Za pomocą Push API możesz używać dowolnego dostawcy Push do wysyłania powiadomień push i wiadomości. Powiadomienie push z 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 za pomocą chrome.gcm

Interfejs chrome.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 specyficzny dla rozszerzeń Chrome, który został dodany wiele lat przed Push został udostępniony w przeglądarkach. Został on utworzony przy użyciu starszych interfejsów HTTP API Firebase (obecnie wycofanych). Chociaż te interfejsy API są wycofane w innych miejscach, nie są wycofane w rozszerzeniach. Będą działać w przewidywalnej przyszłości. Ponieważ jest to jednak starsza wersja backendu push, brakuje w niej funkcji takich jak tematy.

Chociaż usługa backendu FCM jest niezbędna, aby powiadomienia docierały do użytkowników w Chrome, do wysyłania wiadomości nie musisz używać chrome.gcm. Wszyscy dostawcy Push mogą wysyłać i odbierać wiadomości oraz zdarzenia na konto Firebase za pomocą Web Push. Chociaż jest to nadal w pełni obsługiwany interfejs Chrome Extension API, zalecamy używanie standardów internetowych, takich jak Push API zamiast interfejsów API specyficznych dla rozszerzeń. Jeśli w Twoim przypadku najlepiej sprawdzi się chrome.gcm, zapoznaj się ze szczegółowymi instrukcjami konfigurowania chrome.gcm od podstaw.

Wiadomości w czasie rzeczywistym za pomocą WebSockets

WebSockets od ponad dekady są podstawą przesyłania wiadomości w czasie rzeczywistym w internecie. Są one domyślnym rozwiązaniem w przypadku zdarzeń w czasie rzeczywistym w internecie, zapewniając ciągłą, dwukierunkową rozmowę. WebSockets działają w różnych komponentach rozszerzeń, takich jak skrypty treści, wyskakujące okienka, panele boczy czy service worker w tle. Chociaż są one świetnym rozwiązaniem w internecie, mają pewne ograniczenia w przypadku rozszerzeń, o których musisz pamiętać, jeśli planujesz ich używać.

Nie nadają się do powiadomień push

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

Tylko aktywne połączenia

Chrome zawiesza rozszerzenia, które nie są używane przez 30 sekund. Chrome określa, czy rozszerzenie jest „używane”, na podstawie kilku heurystyk, z których jedną 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 używasz WebSockets w rozszerzeniu i chcesz mieć pewność, że nie zostanie ono przedwcześnie zamknięte, możesz wysyłać sygnał utrzymania połączenia. Polega to na wysyłaniu okresowych wiadomości do serwera, informujących go i Chrome, że nadal jesteś aktywny. Przykład tego, jak utrzymać połączenie WebSocket na stałe, znajdziesz w naszej dokumentacji WebSockets.