Aggiornamenti in tempo reale nelle Estensioni

Gli aggiornamenti in tempo reale forniscono un percorso di comunicazione istantaneo dai tuoi server direttamente alle installazioni delle estensioni. Puoi inviare e ricevere dati nel momento in cui si verificano degli eventi. Per la messaggistica immediata, l'attivazione di attività in background o la sincronizzazione dei dati dei dispositivi, è un'operazione fondamentale per una serie di servizi moderni. Le estensioni di Chrome hanno varie opzioni per la comunicazione in tempo reale.

  • Web Push, o API Push, è uno standard web che consente di inviare e ricevere messaggi in un'estensione di Chrome da qualsiasi provider di servizi push o anche con il tuo server web.
  • chrome.gcm è un'API specifica per un'estensione 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 tuo server.

Scenari comuni

Ecco alcuni scenari comuni nelle estensioni di Chrome in cui la comunicazione in tempo reale è fondamentale:

Mantieni aggiornati gli utenti con le modifiche.

Se stai sincronizzando file, impostazioni o altre informazioni tra più utenti, Web Push è il modo perfetto per inviare aggiornamenti silenziosi all'estensione per indicarle 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 nella tua estensione.

Inviare notifiche agli utenti.

Puoi inviare notifiche completamente lato client, ma se utilizzi una logica lato server per indicare chi, cosa, dove o quando inviare una notifica, il push web è l'opzione più a prova di futuro.

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

Puoi utilizzare le notifiche push web o chrome.gcm per inviare notifiche agli utenti quando si verifica un'attività 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, una presa web potrebbe essere l'opzione migliore. Apre una connessione bidirezionale tra l'estensione e il server (o anche direttamente con altri utenti). Ti permette di scambiare dati e messaggi in tempo reale. Sebbene siano un'ottima opzione sul web in generale, presentano alcune limitazioni relative alle estensioni che devi tenere presente se prevedi di utilizzarle.

Nel resto della guida daremo un'occhiata più da vicino alle opzioni disponibili.

Notifiche push con l'API Push

Con l'API Push puoi utilizzare qualsiasi provider Push per inviare messaggi e notifiche push. Un push dall'API Push verrà elaborato dal tuo service worker non appena lo riceve. Se è stata sospesa, il pulsante Push la riattiva. La procedura per utilizzarla nelle estensioni è esattamente la stessa che faresti sul web aperto.

Notifiche push con chrome.gcm

L'API chrome.gcm fornisce una connessione diretta a Firebase Cloud Messaggi (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 diventasse disponibile nei browser. È stato creato utilizzando le API HTTP precedenti di Firebase (ora deprecate). Sebbene queste API siano deprecate altrove, non sono deprecate nelle estensioni. Continueranno a funzionare nel prossimo futuro. Tuttavia, poiché si tratta del backend push legacy, è privo di funzionalità come Topics.

Sebbene un servizio di backend FCM sia un requisito rigido per consentire agli utenti di ricevere notifiche in Chrome, non è necessario utilizzare chrome.gcm per inviare messaggi. Tutti i provider push possono inviare e ricevere messaggi ed eventi in un account Firebase utilizzando il servizio push web. Anche se si tratta ancora di un'API Chrome Extension completamente supportata, è consigliabile preferire standard web come l'API Push a specifici standard per le estensioni, come questo. Se per il tuo caso d'uso è preferibile utilizzare chrome.gcm, puoi trovare una procedura dettagliata su come configurare chrome.gcm da zero.

Messaggi in tempo reale con WebSocket

WebSockets è da oltre un decennio un pilastro della messaggistica in tempo reale sul web. Rappresentano l'opzione ideale per gli eventi in tempo reale sul web, fornendo una conversazione bidirezionale continua. I WebSocket funzionano in vari componenti di estensioni, come script dei contenuti, popup, pannelli laterali o service worker in background. Sebbene siano un'ottima opzione sul web in generale, presentano alcune limitazioni relative alle estensioni che devi tenere a mente se prevedi di utilizzarle.

Non ideale per le notifiche push

Le WebSocket vengono eseguite nella piattaforma web, anziché utilizzare un'API di piattaforme di estensioni come chrome.gcm, Chrome non ha modo di riattivare l'estensione quando una connessione WebSocket viene avviata al di fuori dell'estensione.

Solo connessioni attive

Chrome sospende le estensioni che non vengono utilizzate dopo 30 secondi. In Chrome viene eseguita una serie di euristiche per determinare se l'estensione viene "utilizzata", una delle quali è una connessione WebSocket attiva. Chrome non sospende un'estensione che ha inviato o ricevuto un messaggio WebSocket negli ultimi 30 secondi. Se utilizzi WebSocket nell'estensione e devi assicurarti che non venga chiuso prematuramente, puoi inviare un messaggio heartbeat per mantenere la connessione. Ciò comporta l'invio di messaggi periodici al server, per comunicare sia al server che a Chrome che è ancora attivo. Un esempio di come mantenere attiva una websocket a tempo indeterminato è disponibile nella nostra documentazione di WebSocket.