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.
- ASP.NET Core SDK
- Un editor di testo o editor di codice di propria scelta.
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.
- Accedere al portale di Azure.
- Nell'angolo in alto a sinistra della pagina selezionare + Crea una risorsa.
- Nella pagina Crea una risorsa, nella casella di testo servizio di ricerca e marketplace immettere signalr e quindi selezionare Servizio SignalR dall'elenco.
- Nella pagina Servizio SignalR selezionare Crea.
- 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.
- Selezionare il pulsante Rivedi e crea nella parte inferiore della scheda Informazioni di base .
- Nella scheda Rivedi e crea esaminare i valori e quindi selezionare Crea. Il completamento della distribuzione richiede alcuni istanti.
- Al termine della distribuzione, selezionare il pulsante Vai alla risorsa .
- Nella pagina della risorsa SignalR selezionare Chiavi dal menu a sinistra, sotto Impostazioni.
- 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.
Aprire una finestra del terminale Git. Passare a una cartella in cui si vuole clonare il progetto di esempio.
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:
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.
Nella finestra che si apre selezionare il gruppo di risorse e quindi fare clic su Elimina gruppo di risorse.
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.