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.

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 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.

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.

  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.

Configurare ed eseguire l'app Web Chat Room

  1. Avviare Visual Studio e aprire la soluzione nella cartella aspnet-samples/ChatRoom/ del repository clonato.

  2. Nel browser in cui viene aperto il portale di Azure individuare e selezionare l'istanza creata.

  3. Selezionare Chiavi per visualizzare le stringhe di connessione per l'istanza del servizio SignalR.

  4. Selezionare e copiare la stringa di connessione primaria.

  5. Impostare ora la stringa di connessione nel file web.config.

    <configuration>
    <connectionStrings>
        <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/>
    </connectionStrings>
    ...
    </configuration>
    
  6. In Startup.cs invece di chiamare MapSignalR() è necessario chiamare MapAzureSignalR({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 usare this.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.

  7. 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:

  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.

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.

Delete

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.