Aggiornamenti in tempo reale nelle estensioni

Gli aggiornamenti in tempo reale forniscono un percorso di comunicazione immediato dai tuoi server direttamente alle installazioni delle estensioni. Puoi inviare e ricevere dati man mano che si verificano gli eventi. Che tu lo utilizzi per la messaggistica immediata, per attivare attività in background o per sincronizzare i dati sul dispositivo, è un'operazione fondamentale con una serie di servizi moderni. Esistono diverse opzioni per la comunicazione in tempo reale nelle estensioni di Chrome.

  • Web Push, o Push API, è uno standard web che ti consente di inviare e ricevere messaggi in un'estensione di Chrome da qualsiasi provider Push o anche con il tuo server web.
  • chrome.gcm è un'API specifica per le estensioni legacy che ti consente di inviare e ricevere messaggi utilizzando Firebase Cloud Messaging.
  • WebSockets è un protocollo di basso livello che ti consente di aprire una connessione bidirezionale tra l'estensione di Chrome e il server.

Scenari comuni

Di seguito sono riportati alcuni scenari comuni nelle estensioni di Chrome in cui la comunicazione in tempo reale è fondamentale:

Mantieni gli utenti aggiornati sulle modifiche.

Se sincronizzi file, impostazioni o altre informazioni tra più utenti, Web Push è il modo perfetto per inviare aggiornamenti silenziosi all'estensione per comunicarle di aggiornare lo stato dal server.

Consenti agli utenti di segnalare bug o problemi? Puoi eseguire l'integrazione con un provider Push per informarlo non appena hai un aggiornamento da condividere, direttamente nell'estensione.

Invia notifiche agli utenti.

Sebbene tu possa inviare notifiche completamente lato client, se hai una logica lato server per chi, cosa, dove o quando inviare una notifica, Web Push è l'opzione più a prova di futuro.

Per inviare messaggi solo a un sottoinsieme di utenti, Push è la scelta migliore. Sebbene Firebase Cloud Messaging offra argomenti (noti anche come canali), è disponibile solo nella sua API HTTP Cloud Messaging. È diversa dalla versione legacy utilizzata da chrome.gcm. Se vuoi inviare messaggi generali a tutti gli utenti, inclusi quelli che utilizzano le versioni legacy di Chrome (precedenti a Chrome 121), chrome.gcm è l'opzione ideale. Basato sulle API di messaggistica Firebase legacy, chrome.gcm è supportato in Chrome da oltre un decennio.

Puoi utilizzare Web Push o chrome.gcm per inviare notifiche agli utenti quando si verifica qualcosa di importante per il loro account, ad esempio quando arriva un nuovo messaggio o quando viene condiviso un file.

Messaggistica immediata

Hai bisogno di una comunicazione bidirezionale frequente? Allora un socket web potrebbe essere l'opzione migliore per te. Apre una connessione bidirezionale tra l'estensione e il server (o anche direttamente ad altri utenti). Ti consente di scambiare dati e messaggi in tempo reale. Sebbene siano un'ottima opzione sul web in generale, presentano alcune limitazioni con le estensioni che devi tenere presenti se prevedi di utilizzarle.

Nel resto di questa guida esamineremo più da vicino le opzioni disponibili.

Notifiche push con Push API

Utilizzando la Push API, puoi utilizzare qualsiasi provider Push per inviare notifiche e messaggi push. Un push da Push API verrà elaborato dal service worker non appena viene ricevuto. Se l'estensione è stata sospesa, un push la riattiverà. La procedura per utilizzarla nelle estensioni è esattamente la stessa che utilizzeresti sul web aperto.

Notifiche push con chrome.gcm

L'API chrome.gcm fornisce una connessione diretta a Firebase Cloud Messaging (FCM), un servizio per l'invio di aggiornamenti in tempo reale ad applicazioni web e app mobile. Si tratta di un'API di estensione specifica di Chrome aggiunta molti anni prima che Push fosse disponibile nei browser. È stata creata utilizzando le API HTTP legacydi Firebase (ora ritirate). Sebbene queste API siano ritirate altrove, non sono ritirate nelle estensioni. Continueranno a funzionare nel prossimo futuro. Tuttavia, trattandosi del backend push legacy, non dispone di funzionalità come gli argomenti.

Sebbene un servizio di backend FCM sia un requisito fondamentale per consentire alle notifiche di raggiungere gli utenti in Chrome, non è necessario utilizzare chrome.gcm per inviare messaggi. Tutti i provider Push sono in grado di inviare e ricevere messaggi ed eventi a un account Firebase utilizzando il push web. Sebbene si tratti ancora di un'API di estensione di Chrome completamente supportata, la best practice è preferire gli standard web come la Push API a quelli specifici per le estensioni come questo. Se il tuo caso d'uso è più adatto a chrome.gcm, è disponibile una guida dettagliata su come configurare chrome.gcm da zero.

Messaggi in tempo reale con WebSockets

WebSockets è un elemento fondamentale della messaggistica in tempo reale sul web da oltre un decennio. È l'opzione di riferimento per gli eventi in tempo reale sul web, in quanto fornisce una conversazione continua e bidirezionale. WebSockets funziona in una varietà di componenti di estensione, che si tratti di script di contenuti, popup, riquadri laterali o service worker in background. Sebbene siano un'ottima opzione sul web in generale, presentano alcune limitazioni con le estensioni che devi tenere presenti se prevedi di utilizzarle.

Non è l'ideale per le notifiche push

Poiché WebSockets viene eseguito nella piattaforma web, anziché utilizzare un'API della piattaforma di estensione come chrome.gcm, Chrome non ha modo di riattivare l'estensione quando viene avviata una connessione WebSocket al di fuori dell'estensione.

Solo connessioni attive

Chrome sospende le estensioni non utilizzate dopo 30 secondi. Chrome utilizza una serie di euristiche per determinare se l'estensione è "in uso", una delle quali è una connessione WebSocket attiva. Chrome non sospenderà un'estensione che ha inviato o ricevuto un messaggio WebSocket negli ultimi 30 secondi. Se utilizzi WebSockets nell'estensione e devi assicurarti che non venga chiusa prematuramente, puoi inviare un messaggio heartbeat per mantenere la connessione. Ciò comporta l'invio di messaggi periodici al server, comunicando sia a quest'ultimo sia a Chrome che sei ancora attivo. Un esempio di come mantenere attivo un WebSocket a tempo indeterminato è disponibile nella nostra documentazione di WebSocket.