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

Servizio Azure SignalR fornisce API REST per supportare scenari di comunicazione da server a client, ad esempio la trasmissione. È possibile scegliere qualsiasi linguaggio di programmazione in grado di effettuare chiamate 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 apprenderà come inviare messaggi da un'app da riga di comando alle app client connesse in C#.

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 nella guida di riferimento all'interfaccia della riga di comando di Servizio Azure SignalR.

  1. Accedere al portale di Azure.
  2. Nell'angolo in alto a sinistra della pagina selezionare + Crea una risorsa.
  3. Nella pagina Crea una risorsa, nella casella di testo servizio di ricerca e marketplace 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 di 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 di 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à stato eseguito 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 il trattino e i caratteri trattini consecutivi non sono validi.
Area Scegli la tua area geografica Selezionare l'area appropriata per la nuova istanza di Servizio SignalR.

Servizio Azure SignalR non è attualmente disponibile in tutte le aree. Per altre informazioni, vedere disponibilità dell'area Servizio Azure SignalR
Piano tariffario Selezionare Cambia e quindi scegliere Gratuito (solo sviluppo/test). Scegliere Seleziona per confermare la scelta del piano tariffario. 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 Servizio Azure SignalR prezzi
Modalità di servizio Scegliere la modalità di servizio appropriata Usare Default 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, ad esempio Funzioni di Azure per ospitare la logica dell'hub SignalR.

La modalità classica è solo per la compatibilità con le versioni precedenti e non è consigliabile usarla.

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

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

  1. Selezionare il pulsante Rivedi e crea nella parte inferiore della scheda Informazioni di base .
  2. Nella scheda Rivedi e crea esaminare i valori e quindi selezionare Crea. Il completamento della distribuzione richiede alcuni istanti.
  3. Al termine della distribuzione, selezionare il pulsante Vai alla risorsa .
  4. Nella pagina della risorsa SignalR selezionare Chiavi dal menu a sinistra, sotto Impostazioni.
  5. Copiare la stringa di Connessione ion 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 passare alla preparazione del codice. Clonare l'app di esempio da GitHub, impostare la stringa di connessione del servizio SignalR ed eseguire localmente l'applicazione.

  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 apprenderà anche come generare un token di accesso per l'autenticazione con 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

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 non servizi Microsoft

Il servizio Azure SignalR consente l'integrazione non servizi 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 Disponibili 5002 Swagger
1.0 Disponibili 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 Corpo 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 Corpo 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 Corpo 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 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 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 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 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 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 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 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.