Condividi tramite


Concetti di base di Azure Web PubSub

Il servizio Web PubSub di Azure consente di creare applicazioni Web di messaggistica in tempo reale. I client si connettono al servizio usando il protocollo WebSocket standard e il servizio espone API REST e SDK per gestire questi client.

Terms

Ecco alcuni termini importanti usati dal servizio:

  • Connessione: una connessione, nota anche come client o connessione client, è una relazione logica tra un client e il servizio Web PubSub. Tramite una "connessione", il client e il servizio si impegnano in una serie di interazioni con stato. Le connessioni che usano protocolli diversi possono comportarsi in modo diverso, ad esempio alcune connessioni sono limitate alla durata di una connessione di rete, mentre altre possono estendersi tra più connessioni di rete successive tra un client e il servizio.

  • Hub: un hub è un concetto logico per un insieme di connessioni client. In genere si usa un hub per uno scenario, ad esempio un hub di chat o un hub di notifica. Quando una connessione client si connette, si connette a un hub e per tutta la sua durata appartiene a tale hub. Quando una connessione client si connette all'hub, l'hub esiste. Diverse applicazioni possono condividere un servizio Web PubSub di Azure usando nomi di hub diversi. Anche se non esiste un limite rigoroso per il numero di hub, un hub usa un carico di servizio maggiore rispetto a un gruppo. È consigliabile avere un set predeterminato di hub anziché generarli in modo dinamico.

  • Gruppo: un gruppo è un subset di connessioni all'hub. È possibile aggiungere una connessione client a un gruppo o rimuovere la connessione client dal gruppo in qualsiasi momento. Ad esempio, quando un client si unisce a una chat room o quando un client lascia la chat room, questa chat room può essere considerata un gruppo. Un client può partecipare a più gruppi e un gruppo può contenere più client. Il gruppo è simile a una "sessione" di gruppo; la sessione di gruppo viene creata una volta che un utente si unisce al gruppo e viene eliminata quando nessuno si trova nel gruppo. I messaggi inviati al gruppo vengono recapitati a tutti i client connessi al gruppo.

  • Utente: le connessioni a Web PubSub possono appartenere a un utente. Un utente potrebbe avere più connessioni, ad esempio quando un singolo utente è connesso tra più dispositivi o più schede del browser.

  • Messaggio: quando il client è connesso, può inviare messaggi all'applicazione upstream o ricevere messaggi dall'applicazione upstream, tramite la connessione WebSocket. I messaggi possono essere in formato testo normale, binario o JSON e hanno una dimensione massima di 1 MB.

  • Eventi client: eventi vengono creati durante il ciclo di vita di una connessione client. Ad esempio, una connessione client WebSocket semplice crea un connect evento quando tenta di connettersi al servizio, un connected evento quando è connesso correttamente al servizio, un message evento quando invia messaggi al servizio nella modalità sendEvent predefinita e un disconnected evento quando si disconnette dal servizio. I dettagli sugli eventi client sono illustrati nella sezione Protocollo client.

  • Gestore eventi: il gestore eventi contiene la logica per gestire gli eventi client. Registrare e configurare in anticipo i gestori eventi nel servizio tramite il portale o l'interfaccia della riga di comando di Azure. I dettagli sono descritti nella sezione Gestore eventi.

  • Listener di eventi (anteprima): il listener di eventi è in ascolto solo degli eventi client, ma non può interferire con la durata dei client tramite la loro risposta. I dettagli sono descritti nella sezione Listener di eventi.

  • Server: il server può gestire gli eventi client, gestire le connessioni client o pubblicare messaggi in gruppi. Sia il gestore eventi che il listener di eventi sono considerati lato server. I dettagli sul server sono descritti nella sezione Protocollo server.

Importante

Hub, Group UserId sono ruoli importanti quando si gestiscono i client e si inviano messaggi. Saranno obbligatori parametri in diverse chiamate API REST come testo normale. Quindi NON inserire informazioni riservate in questi campi. Ad esempio, le credenziali o i token di connessione che avranno un rischio elevato di perdita.

Workflow

Un flusso di lavoro tipico che usa il servizio è illustrato di seguito:

Diagramma che mostra il flusso di lavoro del servizio Web PubSub.

Come illustrato nel grafico del flusso di lavoro precedente:

  1. Un client si connette a un hub nel servizio usando il trasporto WebSocket. Il servizio può inoltrare i messaggi all'upstream(server) configurato o gestire i messaggi autonomamente e consentire ai client di eseguire direttamente pub/sub, a seconda del protocollo usato dal client. I dettagli sono descritti nei protocolli client.

  2. Il servizio richiama il server usando il protocollo CloudEvents su eventi client diversi. CloudEvents è una definizione standardizzata e libera dai protocolli dalla struttura e della descrizione dei metadati degli eventi ospitati dalla Cloud Native Computing Foundation (CNCF). I dettagli sono descritti nel protocollo del server.

  3. Il server può richiamare il servizio usando l'API REST per inviare messaggi ai client o per gestire i client connessi. I dettagli sono descritti nel protocollo server