Sdílet prostřednictvím


Škálování aplikace SignalR službou Azure Service Bus (SignalR 1.x)

Patrick Fletcher

Upozornění

Tato dokumentace není určená pro nejnovější verzi služby SignalR. Podívejte se na ASP.NET Core SignalR.

V tomto kurzu nasadíte aplikaci SignalR do webové role Windows Azure pomocí rozhraní Service Bus k distribuci zpráv do jednotlivých instancí role.

Diagram znázorňující vztah mezi tématem oboru názvů služby Service Bus, webovými rolemi a dostupnými počítači a účty

Požadavky:

Backplane služby Service Bus je také kompatibilní se službou Service Bus pro Windows Server verze 1.1. Není ale kompatibilní s verzí 1.0 služby Service Bus pro Windows Server.

Ceny

Backplane služby Service Bus používá k odesílání zpráv témata. Nejnovější informace o cenách najdete v tématu Service Bus. V době psaní tohoto textu můžete posílat 1 000 000 zpráv za měsíc za méně než 1 USD. Backplane odesílá zprávu služby Service Bus pro každé vyvolání metody centra SignalR. K dispozici jsou také řídicí zprávy týkající se připojení, odpojení, připojování nebo opouštění skupin atd. Většina přenosů zpráv bude ve většině aplikací vyvoláním metod centra.

Přehled

Než se dostaneme k podrobnému kurzu, tady je stručný přehled toho, co budete dělat.

  1. Pomocí Azure Portal Windows vytvořte nový obor názvů služby Service Bus.

  2. Přidejte do své aplikace tyto balíčky NuGet:

  3. Vytvořte aplikaci SignalR.

  4. Do souboru Global.asax přidejte následující kód pro konfiguraci backplane:

    protected void Application_Start()
    {
        string connectionString = "Service Bus connection string";
        GlobalHost.DependencyResolver.UseServiceBus(connectionString, "YourAppName");
    
        RouteTable.Routes.MapHubs();
        // ...
    }
    

Pro každou aplikaci vyberte jinou hodnotu pro YourAppName. Nepoužívejte stejnou hodnotu ve více aplikacích.

Vytvoření služeb Azure

Vytvořte cloudovou službu, jak je popsáno v tématu Vytvoření a nasazení cloudové služby. Postupujte podle kroků v části Postupy: Vytvoření cloudové služby pomocí rychlého vytvoření. Pro účely tohoto kurzu nemusíte nahrávat certifikát.

Snímek obrazovky s podoknem NOVÝ se zvýrazněnou možností a ikonou CloudOvá služba v aplikaci a červeným kroužkem

Vytvořte nový obor názvů služby Service Bus, jak je popsáno v tématu Použití témat a předplatných služby Service Bus. Postupujte podle kroků v části Vytvoření oboru názvů služby.

Snímek obrazovky Přidat nový obor názvů s položkami zadanými do polí Název oboru názvů a Oblast

Poznámka

Nezapomeňte vybrat stejnou oblast pro cloudovou službu a obor názvů služby Service Bus.

Vytvoření projektu sady Visual Studio

Spusťte Visual Studio. V nabídce Soubor klikněte na Nový projekt.

V dialogovém okně Nový projekt rozbalte položku Visual C#. V části Nainstalované šablony vyberte Cloud a pak vyberte Cloudová služba Windows Azure. Ponechte výchozí .NET Framework 4.5. Pojmenujte aplikaci ChatService a klikněte na OK.

Snímek obrazovky Nový projekt se zvýrazněnou možností Windows Azure Cloud Service Visual C#

V dialogovém okně Nová cloudová služba Windows Azure vyberte ASP.NET Webová role MVC 4. Kliknutím na tlačítko se šipkou doprava (>) přidejte roli do řešení.

Najeďte myší na novou roli, aby se ikona tužky zobrazila. Kliknutím na tuto ikonu roli přejmenujete. Pojmenujte roli SignalRChat a klikněte na OK.

Snímek obrazovky Nová cloudová služba Windows Azure se zvýrazněnou možností Signal R Chat v podokně řešení Cloudová služba Windows Azure

V průvodci New ASP.NET MVC 4 Project (Nový projekt MVC 4) vyberte Internet Application (Internetová aplikace). Klikněte na OK. Průvodce projektem vytvoří dva projekty:

  • ChatService: Tento projekt je aplikace Windows Azure. Definuje role Azure a další možnosti konfigurace.
  • SignalRChat: Tento projekt je váš projekt ASP.NET MVC 4.

Vytvoření aplikace SignalR Chat

Pokud chcete vytvořit chatovací aplikaci, postupujte podle pokynů v kurzu Začínáme se službou SignalR a MVC 4.

K instalaci požadovaných knihoven použijte NuGet. V nabídce Nástroje vyberte Správce balíčků NuGet a pak vyberte Konzola Správce balíčků. V okně konzoly Správce balíčků zadejte následující příkazy:

Install-Package -ProjectName SignalRChat Microsoft.AspNet.SignalR
Install-Package -ProjectName SignalRChat Microsoft.AspNet.SignalR.ServiceBus

-ProjectName Pomocí možnosti nainstalujte balíčky do projektu ASP.NET MVC místo do projektu Windows Azure.

Konfigurace backplane

Do souboru Global.asax vaší aplikace přidejte následující kód:

protected void Application_Start()
{
    string connectionString = "";
    GlobalHost.DependencyResolver.UseServiceBus(connectionString, "Chat");  

    RouteTable.Routes.MapHubs();
}

Teď potřebujete získat připojovací řetězec služby Service Bus. V Azure Portal vyberte obor názvů služby Service Bus, který jste vytvořili, a klikněte na ikonu Přístupový klíč.

Snímek obrazovky s možnostmi a ikonami Vytvořit, Přístupový klíč a Odstranit v oboru názvů služby Service Bus s fokusem na možnosti Vytvořit

Zkopírujte připojovací řetězec do schránky a vložte ho do proměnné connectionString .

Snímek obrazovky Access Key Connect to your namespace (Připojte se k oboru názvů) zobrazující pole Připojovací řetězec, Výchozí vystavitel a Výchozí klíč

string connectionString = "Endpoint=sb://xxxx.servicebus.windows.net/;
SharedSecretIssuer=owner;SharedSecretValue=XXXXXXXX";

Nasazení do Azure

V Průzkumník řešení rozbalte složku Role v projektu ChatService.

Snímek obrazovky se stromem Průzkumník řešení zobrazující možnost chatu Signal R obsaženou ve složce Role projektu Chatovací služba

Klikněte pravým tlačítkem na roli SignalRChat a vyberte Vlastnosti. Vyberte kartu Konfigurace . V části Instances (Instance) vyberte 2. Můžete také nastavit velikost virtuálního počítače na Extra Small.

Snímek obrazovky s oddílem Instance na kartě Konfigurace zobrazující hodnotu 2 zadanou do pole Počet instancí a pole Velikost virtuálního počítače nastavené na Extra Small

Uložte změny.

V Průzkumník řešení klikněte pravým tlačítkem na projekt ChatService. Vyberte Publikovat.

Snímek obrazovky s projektem chatovací služby na Průzkumník řešení obrazovce s rozevírací nabídkou zobrazenou po kliknutí pravým tlačítkem myši s možností Publikovat... Možnost.

Pokud do Windows Azure publikujete poprvé, musíte si stáhnout přihlašovací údaje. V průvodci publikováním klikněte na Přihlásit se a stáhněte si přihlašovací údaje. Zobrazí se výzva, abyste se přihlásili k Azure Portal Windows a stáhli soubor nastavení publikování.

Snímek obrazovky Publish Windows Aplikace Azure (Publikovat přihlašovací údaje) na obrazovce Sign In (Přihlásit se a stáhnout přihlašovací údaje) se zvýrazněným odkazem Přihlásit se a stáhnout přihlašovací údaje

Klikněte na Importovat a vyberte soubor nastavení publikování, který jste stáhli.

Klikněte na Next (Další). V dialogovém okně Nastavení publikování v části Cloudová služba vyberte cloudovou službu, kterou jste vytvořili dříve.

Snímek obrazovky Publikovat windows Aplikace Azure s kartou Nastavení a polem Cloud Service (Cloudová služba) na kartě Společná nastavení

Klikněte na Publikovat. Nasazení aplikace a spuštění virtuálních počítačů může trvat několik minut.

Když teď spustíte chatovací aplikaci, instance rolí komunikují prostřednictvím Azure Service Bus pomocí tématu služby Service Bus. Téma je fronta zpráv, která umožňuje více odběratelům.

Backplane automaticky vytvoří téma a odběry. Pokud chcete zobrazit odběry a aktivitu zpráv, otevřete Azure Portal, vyberte obor názvů služby Service Bus a klikněte na Témata.

Snímek obrazovky s vybraným polem CloudOvá služba, které se teď naplňuje v Azure Portal, se zvýrazněným polem Název cloudové služby

Aktivita zpráv se na řídicím panelu zobrazí za několik minut.

Snímek obrazovky řídicího panelu Azure Portal zobrazující časovou osu aktivity zpráv a modrou a fialovou čáru označující různé historie zpráv

SignalR spravuje dobu života tématu. Dokud je vaše aplikace nasazená, nepokoušejte se ručně odstranit témata ani měnit nastavení tématu.