Condividi tramite


Guida introduttiva: trasmissione in tempo reale di messaggi dall'app console

Il servizio Azure SignalR fornisce l'API REST per supportare scenari di comunicazione da server a client, ad esempio la trasmissione. È possibile scegliere qualsiasi linguaggio di programmazione che possa effettuare chiamate all'API REST. È possibile inviare messaggi a tutti i client connessi, a un client specifico in base al nome o a un gruppo di client.

In questa guida introduttiva si apprende come inviare messaggi da un'app da riga di comando alle app client connesse in C#.

Importante

Le stringa di connessione non elaborate vengono visualizzate in questo articolo solo a scopo dimostrativo.

Un stringa di connessione include le informazioni di autorizzazione necessarie per consentire all'applicazione di accedere alle Servizio Azure SignalR. La chiave di accesso all'interno della stringa di connessione è simile a una password radice per il servizio. Negli ambienti di produzione proteggere sempre le chiavi di accesso. Usare Azure Key Vault per gestire e ruotare le chiavi in modo sicuro e proteggere i stringa di connessione usando Microsoft Entra ID e autorizzare l'accesso con Microsoft Entra ID.

Evitare di distribuire le chiavi di accesso ad altri utenti, impostarle come hardcoded o salvarle in un file di testo normale accessibile ad altri. Ruotare le chiavi se si ritiene che siano state compromesse.

Prerequisiti

Questa guida introduttiva può essere eseguita su macOS, Windows o Linux.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Accedere ad Azure

Accedere al portale di Azure con l'account di Azure.

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

In questa sezione viene creata un'istanza di Azure SignalR di base da usare per l'app. I passaggi seguenti usano il portale di Azure per creare una nuova istanza, ma è anche possibile usare l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere il comando az signalr create in Informazioni di riferimento sull'interfaccia della riga di comando per il Servizio Azure SignalR.

  1. Accedere al portale di Azure.
  2. Nell'angolo in alto a sinistra della pagina selezionare + Crea una risorsa.
  3. Nella casella di testo Servizi di ricerca e marketplace della pagina Crea una risorsa immettere signalr e quindi selezionare Servizio SignalR dall'elenco.
  4. Nella pagina Servizio SignalR selezionare Crea.
  5. Nella scheda Informazioni di base immettere le informazioni essenziali per la nuova istanza del servizio SignalR. Immettere i valori seguenti:
Campo Valore consigliato Descrizione
Abbonamento Scegliere la sottoscrizione in uso Selezionare la sottoscrizione da usare per creare una nuova istanza del servizio SignalR.
Gruppo di risorse Creare un gruppo di risorse denominato SignalRTestResources Selezionare o creare un gruppo di risorse per la risorsa SignalR. È utile creare un nuovo gruppo di risorse per questa esercitazione anziché usare un gruppo di risorse esistente. Per liberare risorse dopo aver completato l'esercitazione, eliminare il gruppo di risorse.

L'eliminazione di un gruppo di risorse elimina anche tutte le risorse che appartengono al gruppo. Non è possibile annullare questa azione. Prima di eliminare un gruppo di risorse, assicurarsi che non contenga risorse da conservare.

Per altre informazioni, vedere Using resource groups to manage your Azure resources (Uso di Gruppi di risorse per gestire le risorse di Azure).
Nome risorsa testsignalr Immettere un nome risorsa univoco da usare per la risorsa SignalR. Se testsignalr è già in uso nell'area, aggiungere una cifra o un carattere fino a quando il nome non è univoco.

Il nome deve essere una stringa contenente da 1 a 63 caratteri che possono includere solo numeri, lettere e il segno meno (-). Il nome non può iniziare o terminare con un trattino e non sono consentiti più trattini consecutivi.
Area Scegli la tua area geografica Selezionare l'area appropriata per la nuova istanza del servizio SignalR.

Il Servizio Azure SignalR non è attualmente disponibile in tutte le aree. Per altre informazioni, vedere Disponibilità del Servizio Azure SignalR a livello di area
Piano tariffario Selezionare Modifica e quindi scegliere Gratuito (solo sviluppo/test). Scegliere Seleziona per confermare la scelta del piano tariffario. Il Servizio Azure SignalR ha tre piani tariffari: Gratuito, Standard e Premium. Le esercitazioni usano il livello Gratuito, a meno che non sia specificato diversamente nei prerequisiti.

Per altre informazioni sulle differenze di funzionalità tra i livelli e i prezzi, vedere Prezzi del Servizio Azure SignalR
Modalità di servizio Scegliere la modalità di servizio appropriata Usare Predefinita quando si ospita la logica dell'hub SignalR nelle app Web e si usa il Servizio SignalR come proxy. Usare Serverless quando si usano tecnologie serverless come Funzioni di Azure per ospitare la logica dell'hub SignalR.

La modalità Classica è disponibile solo ai fini della compatibilità con le versioni precedenti e non è consigliabile usarla.

Per altre informazioni, vedere Modalità di servizio nel Servizio Azure SignalR.

Non è necessario modificare le impostazioni nelle schede Rete e Tag per le esercitazioni su SignalR.

  1. Selezionare il pulsante blu Rivedi e crea nella parte inferiore della scheda Informazioni di base.
  2. Nella scheda Rivedi e crea rivedere i valori e quindi selezionare Crea. Il completamento della distribuzione richiede alcuni istanti.
  3. Dopo avere completato la distribuzione, selezionare il pulsante Vai alla risorsa.
  4. Nella pagina della risorsa SignalR selezionare Chiavi dal menu a sinistra, in Impostazioni.
  5. Copiare la Stringa di connessione per la chiave primaria. Questa stringa di connessione è necessaria per configurare l'app più avanti in questa esercitazione.

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Clonare l'applicazione di esempio

Durante la distribuzione del servizio è possibile preparare il codice. Prima di tutto, clonare l'app di esempio da GitHub. Impostare quindi la stringa di connessione del Servizio SignalR sull'app. Eseguire infine l'applicazione in locale.

  1. Aprire una finestra del terminale Git. Passare a una cartella in cui si vuole clonare il progetto di esempio.

  2. Eseguire il comando seguente per clonare l'archivio di esempio. Questo comando crea una copia dell'app di esempio nel computer in uso.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Compilare ed eseguire l'esempio

Questo esempio è un'app console che illustra l'uso del servizio Azure SignalR. Fornisce due modalità:

  • Modalità server: uso di semplici comandi per chiamare l'API REST del servizio Azure SignalR.
  • Modalità client: connessione al servizio Azure SignalR e ricezione di messaggi dal server.

Si apprende anche come generare un token di accesso per l'autenticazione con il Servizio Azure SignalR.

Creare il file eseguibile

Viene usato macOS osx.10.13-x64 come esempio. È possibile trovare i riferimenti sulla compilazione in altre piattaforme.

cd AzureSignalR-samples/samples/Serverless/

dotnet publish -c Release -r osx.10.13-x64

Avviare un client

Le stringa di connessione non elaborate vengono visualizzate in questo articolo solo a scopo dimostrativo. Negli ambienti di produzione proteggere sempre le chiavi di accesso. Usare Azure Key Vault per gestire e ruotare le chiavi in modo sicuro e proteggere i stringa di connessione usando Microsoft Entra ID e autorizzare l'accesso con Microsoft Entra ID.

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>

Avviare un server

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless server -c "<ConnectionString>" -h <HubName>

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Eseguire l'esempio senza eseguire la pubblicazione

È anche possibile eseguire il comando seguente per avviare un server o un client

# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>

# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>

Usare segreti utente per specificare la stringa di connessione

È possibile eseguire dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" nella directory radice dell'esempio. Successivamente, non è più necessaria l'opzione -c "<ConnectionString>".

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Utilizzo

Dopo l'avvio del server, usare il comando per inviare il messaggio:

send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast

È possibile avviare più client con nomi diversi.

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Integrazione con servizi non Microsoft

Il Servizio Azure SignalR consente l'integrazione non Microsoft con il sistema.

Definizione delle specifiche tecniche

La tabella seguente illustra tutte le versioni delle API REST supportate fino al presente. È anche possibile trovare il file di definizione per ogni versione specifica

Versione Stato API Door Specifica
1.0-preview Disponibile 5002 Swagger
1.0 Disponibile Standard Swagger

L'elenco delle API disponibili per ogni versione specifica è disponibile nell'elenco seguente.

API 1.0-preview 1.0
Trasmettere a tutti
Trasmettere a un gruppo
Trasmettere ad alcuni gruppi (deprecato) N / A
Inviare a un utente
Inviare ad alcuni utenti (deprecato) N / A
Aggiunta di un utente a un gruppo N / A
Rimozione di un utente da un gruppo N / A
Verificare l'esistenza dell'utente N / A
Rimuovere un utente da tutti i gruppi N / A
Inviare a una connessione N / A
Aggiungere una connessione a un gruppo N / A
Rimuovere una connessione da un gruppo N / A
Chiudere una connessione client N / A
Integrità dei servizi N / A

Trasmettere a tutti

Versione Metodo HTTP API Richiesta URL Testo della richiesta
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> {"target": "<method-name>", "arguments": [...]}

Trasmettere a un gruppo

Versione Metodo HTTP API Richiesta URL Testo della richiesta
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> {"target": "<method-name>", "arguments": [...]}

Invio a un utente

Versione Metodo HTTP API Richiesta URL Testo della richiesta
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> {"target": "<method-name>", "arguments": [...]}

Aggiunta di un utente a un gruppo

Versione Metodo HTTP API Richiesta URL
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Rimozione di un utente da un gruppo

Versione Metodo HTTP API Richiesta URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Verificare l'esistenza dell'utente in un gruppo

Versione dell'API Metodo HTTP API Richiesta URL
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name>
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>
Codice di stato della risposta Descrizione
200 Utente esistente
404 Utente non esistente

Rimuovere un utente da tutti i gruppi

Versione dell'API Metodo HTTP API Richiesta URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups

Inviare il messaggio a una connessione

Versione dell'API Metodo HTTP API Richiesta URL Corpo della richiesta
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> { "target":"<method-name>", "arguments":[ ... ] }

Aggiungere una connessione a un gruppo

Versione dell'API Metodo HTTP API Richiesta URL
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Rimuovere una connessione da un gruppo

Versione dell'API Metodo HTTP API Richiesta URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Chiudere una connessione client

Versione dell'API Metodo HTTP API Richiesta URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason>

Integrità del servizio

Versione dell'API Metodo HTTP API Richiesta URL
1.0 GET https://<instance-name>.service.signalr.net/api/v1/health
Codice di stato della risposta Descrizione
200 Servizio funzionante
5xx Errore del servizio

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Pulire le risorse

Se non si intende continuare a usare l'app, eliminare tutte le risorse create tramite questa guida di avvio rapido eseguendo i passaggi seguenti, per evitare qualsiasi addebito:

  1. Nel portale di Azure selezionare Gruppi di risorse all'estrema sinistra e quindi selezionare il gruppo di risorse creato. In alternativa, è possibile usare la casella di ricerca per trovare il gruppo di risorse in base al nome.

  2. Nella finestra che si apre selezionare il gruppo di risorse e quindi fare clic su Elimina gruppo di risorse.

  3. Nella nuova finestra digita il nome del gruppo di risorse da eliminare e quindi fai clic su Elimina.

Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.

Passaggi successivi

In questa guida di avvio rapido si è imparato a usare l'API REST per trasmettere messaggi in tempo reale dal servizio SignalR ai client. Nella guida di avvio rapido successiva si apprenderà come sviluppare e distribuire Funzioni di Azure con il binding del servizio SignalR, che è basato sull'API REST.