Guida introduttiva: Creare una chat room con ASP.NET e Servizio SignalR
Il Servizio Azure SignalR si basa su SignalR per ASP.NET Core 2.1, che non è compatibile al 100% con ASP.NET SignalR. Servizio Azure SignalR reimplementato ASP.NET protocollo di dati SignalR basato sulle tecnologie ASP.NET Core più recenti. Quando si usa Servizio Azure SignalR per ASP.NET SignalR, alcune funzionalità ASP.NET SignalR non sono più supportate, ad esempio Azure SignalR non riproduce i messaggi quando il client si riconnette. Inoltre, il trasporto Forever Frame e JSONP non sono supportati. Per il funzionamento dell'applicazione ASP.NET SignalR con il Servizio SignalR sono necessarie alcune modifiche del codice e la versione corretta delle librerie dipendenti.
Vedere il documento sulle differenze tra le versioni per un elenco completo delle funzionalità ASP.NET SignalR e ASP.NET Core SignalR messe a confronto.
In questo argomento di avvio rapido si apprenderà come iniziare a usare le ASP.NET e le Servizio Azure SignalR per un'applicazione chat room simile.
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
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
Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.
Accedere ad Azure
Accedere al portale di Azure con il proprio account 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.
- Accedere al portale di Azure.
- Nell'angolo in alto a sinistra della pagina selezionare + Crea una risorsa.
- Nella casella di testo Servizi di ricerca e marketplace della pagina Crea una risorsa 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 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.
- Selezionare il pulsante blu Rivedi e crea nella parte inferiore della scheda Informazioni di base.
- Nella scheda Rivedi e crea rivedere i valori e quindi selezionare Crea. Il completamento della distribuzione richiede alcuni istanti.
- Dopo avere completato la distribuzione, selezionare il pulsante Vai alla risorsa.
- Nella pagina della risorsa SignalR selezionare Chiavi dal menu a sinistra, in Impostazioni.
- Copiare la Stringa di connessione per la chiave primaria. Questa stringa di connessione è necessaria per configurare l'app più avanti in questa esercitazione.
La modalità serverless non è supportata per le applicazioni SignalR ASP.NET. Usare sempre la modalità Predefinita oppure Classica per l'istanza del Servizio Azure SignalR.
È anche possibile creare risorse di Azure usate in questo argomento di avvio rapido con lo script Creare un Servizio SignalR.
Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.
Clonare l'applicazione di esempio
Mentre il servizio è in distribuzione, è possibile passare all'utilizzo 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.
Configurare ed eseguire l'app Web Chat Room
Avviare Visual Studio e aprire la soluzione nella cartella aspnet-samples/ChatRoom/ del repository clonato.
Nel browser in cui viene aperto il portale di Azure individuare e selezionare l'istanza creata.
Selezionare Chiavi per visualizzare le stringhe di connessione per l'istanza del servizio SignalR.
Selezionare e copiare la stringa di connessione primaria.
Impostare ora la stringa di connessione nel file web.config.
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.
<configuration> <connectionStrings> <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/> </connectionStrings> ... </configuration>
In Startup.cs invece di chiamare
MapSignalR()
è necessario chiamareMapAzureSignalR({YourApplicationName})
e passare la stringa di connessione in modo che l'applicazione si connetta al servizio anziché ospitare SignalR autonomamente. Sostituire{YourApplicationName}
con il nome dell'applicazione. Questo è un nome univoco per distinguere l'applicazione dalle altre applicazioni. È possibile usarethis.GetType().FullName
come valore.public void Configuration(IAppBuilder app) { // Any connection or hub wire up and configuration should go here app.MapAzureSignalR(this.GetType().FullName); }
È anche necessario fare riferimento all'SDK per i servizi prima di usare queste API. Aprire Strumenti > Gestione pacchetti NuGet > Console di Gestione pacchetti ed eseguire il comando:
Install-Package Microsoft.Azure.SignalR.AspNet
Ad eccezione di queste modifiche, tutto il resto rimane invariato.È comunque possibile usare l'interfaccia hub con cui si ha familiarità per scrivere la logica di business.
Nota
Nell'implementazione l'SDK del Servizio Azure SignalR espone un endpoint
/signalr/negotiate
per la negoziazione. Restituisce una risposta di negoziazione speciale quando i client provano a connettersi e li reindirizza all'endpoint di servizio definito nella stringa di connessione.Premere F5 per eseguire il progetto in modalità di debug. È possibile osservare l'esecuzione dell'applicazione in locale. Anziché ospitare un runtime di SignalR nell'applicazione stessa, ora si connette al Servizio Azure SignalR.
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.
Importante
L'eliminazione di un gruppo di risorse è irreversibile e comporta l'eliminazione definitiva del gruppo di risorse e di tutte le risorse incluse nel gruppo. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se le risorse per questo esempio sono state create all'interno di un gruppo di risorse esistente che contiene anche elementi da mantenere, è possibile eliminare ogni elemento singolarmente dai rispettivi pannelli anziché eliminare il gruppo di risorse.
Accedere al portale di Azure e selezionare Gruppi di risorse.
Nella casella di testo Filtra per nome... immettere il nome del gruppo di risorse. Per le istruzioni di questa guida introduttiva è stato usato un gruppo di risorse denominato SignalRTestResources. Nel gruppo di risorse nell'elenco dei risultati fare clic su ... quindi su Elimina gruppo di risorse.
Dopo qualche istante il gruppo di risorse e tutte le risorse che contiene vengono eliminati.
Problemi? Vedere la guida alla risoluzione dei problemi oppure segnalarli.
Passaggi successivi
In questo argomento di avvio rapido è stata creata una nuova risorsa del Servizio Azure SignalR, che è stata usata con un'app Web ASP.NET. Imparare quindi a sviluppare applicazioni in tempo reale usando il Servizio Azure SignalR con ASP.NET Core.