Škálování aplikace SignalR službou Azure Service Bus (SignalR 1.x)
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.
Požadavky:
- Účet Windows Azure.
- Sada Windows Azure SDK.
- Visual Studio 2012.
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.
Pomocí Azure Portal Windows vytvořte nový obor názvů služby Service Bus.
Přidejte do své aplikace tyto balíčky NuGet:
Vytvořte aplikaci SignalR.
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.
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.
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.
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.
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íč.
Zkopírujte připojovací řetězec do schránky a vložte ho do proměnné connectionString .
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.
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.
Uložte změny.
V Průzkumník řešení klikněte pravým tlačítkem na projekt ChatService. Vyberte Publikovat.
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í.
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.
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.
Aktivita zpráv se na řídicím panelu zobrazí za několik minut.
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.