Dela via


Snabbstart: Skapa ett chattrum med ASP.NET och SignalR Service

Azure SignalR Service baseras på SignalR för ASP.NET Core 2.1, som inte är 100 % kompatibel med ASP.NET SignalR. Azure SignalR Service omimplementerade ASP.NET SignalR-dataprotokoll baserat på de senaste ASP.NET Core-teknikerna. När du använder Azure SignalR Service för ASP.NET SignalR stöds inte längre vissa ASP.NET SignalR-funktioner, till exempel spelar Azure SignalR inte upp meddelanden när klienten återansluts. Dessutom stöds inte Forever Frame-transporten och JSONP. Vissa kodändringar och rätt version av beroende bibliotek krävs för att ASP.NET SignalR-programmet ska fungera med SignalR Service.

I dokumentet om versionsskillnader finns en fullständig lista över funktionsjämförelser mellan ASP.NET SignalR och ASP.NET Core SignalR.

I den här snabbstarten får du lära dig hur du kommer igång med ASP.NET och Azure SignalR Service för ett liknande chattrumsprogram.

Om du inte har en Azure-prenumeration kan du skapa ettkostnadsfritt konto innan du börjar.

Förutsättningar

Har du problem? Prova felsökningsguiden eller meddela oss.

Logga in på Azure

Logga in på Azure Portal med ditt Azure-konto.

Har du problem? Prova felsökningsguiden eller meddela oss.

I det här avsnittet skapar du en grundläggande Azure SignalR-instans som ska användas för din app. Följande steg använder Azure-portalen för att skapa en ny instans, men du kan också använda Azure CLI. Mer information finns i kommandot az signalr create i Cli-referensen för Azure SignalR Service.

  1. Logga in på Azure-portalen.
  2. Välj + Skapa en resurs längst upp till vänster på sidan.
  3. På sidan Skapa en resurs går du till textrutan tjänsten Search s och marketplace och anger signalr och väljer sedan SignalR Service i listan.
  4. På sidan SignalR Service väljer du Skapa.
  5. På fliken Grundläggande anger du viktig information för din nya SignalR Service-instans. Ange följande värden:
Fält Föreslaget värde beskrivning
Abonnemang Välj din prenumeration Välj den prenumeration som du vill använda för att skapa en ny SignalR Service-instans.
Resursgrupp Skapa en resursgrupp med namnet SignalRTestResources Välj eller skapa en resursgrupp för SignalR-resursen. Det är användbart att skapa en ny resursgrupp för den här självstudien i stället för att använda en befintlig resursgrupp. Om du vill frigöra resurser när du har slutfört självstudien tar du bort resursgruppen.

Om du tar bort en resursgrupp tas även alla resurser som tillhör gruppen bort. Det går inte att ångra den här åtgärden. Innan du tar bort en resursgrupp kontrollerar du att den inte innehåller resurser som du vill behålla.

Mer information finns i Using resource groups to manage your Azure resources (Hantera dina Azure-resurser med hjälp av resursgrupper).
Resursnamn testsignalr Ange ett unikt resursnamn för SignalR-resursen. Om testsignaler redan har tagits i din region lägger du till en siffra eller ett tecken tills namnet är unikt.

Namnet måste vara en sträng på 1 till 63 tecken och innehålla endast siffror, bokstäver och bindestreck (-). Namnet kan inte starta eller sluta med bindestreckstecknet och efterföljande bindestreck är inte giltiga.
Region Välj din region Välj lämplig region för din nya SignalR Service-instans.

Azure SignalR Service är för närvarande inte tillgängligt i alla regioner. Mer information finns i Tillgänglighet för Azure SignalR Service-regionen
Prisnivå Välj Ändra och välj sedan Kostnadsfri (endast dev/test). Välj Välj för att bekräfta ditt val av prisnivå. Azure SignalR Service har tre prisnivåer: Kostnadsfri, Standard och Premium. Självstudier använder den kostnadsfria nivån, om inget annat anges i förutsättningarna.

Mer information om funktionsskillnader mellan nivåer och priser finns i Prissättning för Azure SignalR Service
Tjänstläge Välj lämpligt tjänstläge Använd Standard när du är värd för SignalR Hub-logiken i dina webbappar och använder SignalR-tjänsten som proxy. Använd Serverlös när du använder serverlösa tekniker som Azure Functions som värd för SignalR Hub-logiken.

Klassiskt läge är endast för bakåtkompatibilitet och rekommenderas inte att använda.

Mer information finns i Tjänstläge i Azure SignalR Service.

Du behöver inte ändra inställningarna på flikarna Nätverk och Taggar för SignalR-självstudierna.

  1. Välj knappen Granska + skapa längst ned på fliken Grundläggande.
  2. På fliken Granska + skapa granskar du värdena och väljer sedan Skapa. Det tar en stund innan distributionen har slutförts.
  3. När distributionen är klar väljer du knappen Gå till resurs .
  4. På sidan SignalR-resurs väljer du Nycklar på menyn till vänster under Inställningar.
  5. Kopiera Anslut ionssträngen för primärnyckeln. Du behöver den här anslutningssträng för att konfigurera appen senare i den här självstudien.

Serverlöst läge stöds inte för ASP.NET SignalR-program. Använd alltid Standard eller Klassisk för Azure SignalR Service-instansen.

Du kan också skapa Azure-resurser som används i den här snabbstarten med Skapa ett SignalR Service-skript.

Har du problem? Prova felsökningsguiden eller meddela oss.

Klona exempelprogrammet

Medan tjänsten distribueras tar vi och arbetar med koden. Klona exempelappen från GitHub, ange SignalR Service-anslutningssträngen och kör programmet lokalt.

  1. Öppna ett git-terminalfönster. Byt till en mapp där du vill klona exempelprojektet.

  2. Klona exempellagringsplatsen med följande kommando. Detta kommando skapar en kopia av exempelappen på din dator.

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

Har du problem? Prova felsökningsguiden eller meddela oss.

Konfigurera och köra webbapp för chattrum

  1. Starta Visual Studio och öppna lösningen i mappen aspnet-samples/ChatRoom/ på den klonade lagringsplatsen.

  2. I webbläsaren där Azure-portalen öppnas letar du upp och väljer den instans som du skapade.

  3. Välj Nycklar för att visa anslutningssträngarna för SignalR Service-instansen.

  4. Markera och kopiera den primära anslutningssträngen.

  5. Ange nu anslutningssträng i filen web.config.

    <configuration>
    <connectionStrings>
        <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/>
    </connectionStrings>
    ...
    </configuration>
    
  6. I Startup.cs måste du i stället för att anropa MapSignalR()anropa MapAzureSignalR({YourApplicationName}) och skicka in anslutningssträng för att programmet ska ansluta till tjänsten i stället för att vara värd för SignalR på egen hand. Ersätt {YourApplicationName} med namnet på ditt program. Det här namnet är ett unikt namn för att skilja programmet från dina andra program. Du kan använda this.GetType().FullName som värde.

    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        app.MapAzureSignalR(this.GetType().FullName);
    }
    

    Du måste också referera till tjänst-SDK:et innan du använder dessa API:er. Öppna verktygen | NuGet Package Manager | Package Manager-konsolen och kör kommandot:

    Install-Package Microsoft.Azure.SignalR.AspNet
    

    Förutom dessa ändringar förblir allt annat detsamma, du kan fortfarande använda hubbgränssnittet som du redan är bekant med för att skriva affärslogik.

    Kommentar

    I implementeringen exponeras en slutpunkt /signalr/negotiate för förhandling av Azure SignalR Service SDK. Det returnerar ett särskilt förhandlingssvar när klienter försöker ansluta och omdirigera klienter till tjänstslutpunkten som definierats i anslutningssträng.

  7. Tryck på F5 för att köra projektet i felsökningsläge. Du kan se att programmet körs lokalt. I stället för att vara värd för en SignalR-körning av själva programmet ansluter den nu till Azure SignalR Service.

Har du problem? Prova felsökningsguiden eller meddela oss.

Rensa resurser

Om du inte planerar att fortsätta använda den här appen tar du bort alla resurser som skapades i snabbstarten med följande steg, så att inga kostnader uppstår:

  1. Välj Resursgrupper i Azure Portal längst till vänster och välj sedan den resursgrupp du skapat. Du kan också använda sökrutan till att hitta resursgruppen efter dess namn.

  2. Markera resursgruppen i fönstret som öppnas och klicka sedan på Ta bort resursgrupp.

  3. I det nya fönstret skriver du namnet på resursgruppen som ska tas bort. Klicka sedan på Ta bort.

Viktigt!

Det går inte att ångra borttagningen av en resursgrupp och att resursgruppen och alla resurser i den tas bort permanent. Kontrollera att du inte av misstag tar bort fel resursgrupp eller resurser. Om du har skapat resurserna som värd för det här exemplet i en befintlig resursgrupp som innehåller resurser som du vill behålla, kan du ta bort varje resurs separat från deras respektive blad istället för att ta bort resursgruppen.

Logga in på Azure Portal och välj Resursgrupper.

Skriv namnet på din resursgrupp i textrutan Filter by name... (Filtrera efter namn...). Anvisningarna för den här snabbstarten använde en resursgrupp med namnet SignalRTestResources. På din resursgrupp i resultatlistan klickar du på ... och därefter Ta bort resursgrupp.

Delete

Efter en liten stund tas resursgruppen och resurser som finns i den bort.

Har du problem? Prova felsökningsguiden eller meddela oss.

Nästa steg

I den här snabbstarten skapade du en ny Azure SignalR Service-resurs och använde den med en ASP.NET webbapp. Lär dig sedan hur du utvecklar realtidsprogram med Hjälp av Azure SignalR Service med ASP.NET Core.