Concetti di base di Pubblicazione Web di Azure

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 ion: una connessione, nota anche come client o connessione client, rappresenta una singola connessione WebSocket connessa al servizio Web PubSub. Quando si è connessi correttamente, viene assegnato un ID di connessione univoco a questa connessione dal servizio Web PubSub.

  • 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 durante 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 un gruppo "sessione", la sessione di gruppo viene creata una volta che un utente si unisce al gruppo e la sessione 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.

  • Client Connessione ion e Connessione ionId: un client si connette all'endpoint/client, quando connesso, viene generato un univoco dal servizio come identità univoca connectionId della connessione client. Gli utenti possono quindi gestire la connessione client usando questo connectionIdoggetto . I dettagli sono descritti nella sezione Protocollo client.

  • Eventi client: gli eventi vengono creati durante il ciclo di vita di una connessione client. Ad esempio, una semplice connessione client WebSocket 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 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 i gestori eventi nel servizio tramite il portale o l'interfaccia della riga di comando di Azure in anticipo. 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 risposta. I dettagli sono descritti nella sezione Listener 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, GroupUserId 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:

Diagram showing the Web PubSub service workflow.

Come illustrato nel grafico del flusso di lavoro precedente:

  1. Un client si connette all'endpoint di servizio /client usando il trasporto WebSocket. Il servizio inoltra ogni frame WebSocket all'upstream(server) configurato. La connessione WebSocket può connettersi a qualsiasi sottoprotocolo personalizzato per il server da gestire oppure può connettersi con i sottoprotocoli supportati dal servizio (ad esempio json.webpubsub.azure.v1) che consentono ai client di eseguire direttamente pub/sub. 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