Rychlý start: Vytvoření chatovací místnosti s ASP.NET a službou SignalR
Služba Azure SignalR je založená na signalR pro ASP.NET Core 2.1, což není 100 % kompatibilní s ASP.NET SignalR. Služba Azure SignalR service reimplementuje ASP.NET datový protokol SignalR založený na nejnovějších technologiích ASP.NET Core. Pokud používáte službu Azure SignalR pro ASP.NET SignalR, některé ASP.NET funkce SignalR se už nepodporují, například Azure SignalR při opětovném připojení klienta nepřehrává zprávy. Přenos forever frame a JSONP se také nepodporují. Některé změny kódu a správná verze závislých knihoven jsou potřeba k tomu, aby aplikace SignalR fungovala se službou SignalR ASP.NET.
Úplný seznam porovnání funkcí mezi ASP.NET SignalR a ASP.NET Core SignalR najdete v dokumentaci k rozdílům ve verzích.
V tomto rychlém startu se dozvíte, jak začít pracovat se službou ASP.NET a službou Azure SignalR pro podobnou aplikaci chatovací místnosti.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Důležité
Nezpracované připojovací řetězec se v tomto článku zobrazují jenom pro demonstrační účely.
Připojovací řetězec obsahuje informace o autorizaci vyžadované pro vaši aplikaci pro přístup ke službě Azure Web PubSub. Přístupový klíč uvnitř připojovací řetězec je podobný kořenovému heslu pro vaši službu. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
Vyhněte se distribuci přístupových klíčů ostatním uživatelům, jejich pevnému kódování nebo jejich uložení kdekoli ve formátu prostého textu, který je přístupný ostatním uživatelům. Otočte klíče, pokud se domníváte, že mohly být ohroženy.
Požadavky
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Přihlášení k Azure
Přihlaste se k webu Azure Portal pomocí svého účtu Azure.
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
V této části vytvoříte základní instanci Azure SignalR, která se použije pro vaši aplikaci. Následující kroky používají azure Portal k vytvoření nové instance, ale můžete také použít Azure CLI. Další informace najdete v tématu az signalr create command in the Azure SignalR Service CLI Reference.
- Přihlaste se k portálu Azure.
- V levém horním rohu stránky vyberte + Vytvořit prostředek.
- Na stránce Vytvořit prostředek v textovém poli Search s a marketplace zadejte signalr a ze seznamu vyberte Službu SignalR.
- Na stránce Služby SignalR vyberte Vytvořit.
- Na kartě Základy zadáte základní informace pro novou instanci služby SignalR. Zadejte následující hodnoty:
Pole | Navrhovaná hodnota | Popis |
---|---|---|
Předplatné | Zvolte si předplatné. | Vyberte předplatné, které chcete použít k vytvoření nové instance služby SignalR. |
Skupina prostředků | Vytvoření skupiny prostředků s názvem SignalRTestResources | Vyberte nebo vytvořte skupinu prostředků pro prostředek služby SignalR. Místo použití existující skupiny prostředků je užitečné vytvořit novou skupinu prostředků pro účely tohoto kurzu. Pokud chcete po dokončení kurzu uvolnit prostředky, odstraňte skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny prostředky, které patří do skupiny. Tuto akci nelze vrátit zpět. Před odstraněním skupiny prostředků se ujistěte, že neobsahuje prostředky, které chcete zachovat. Další informace najdete v článku Použití skupin prostředků ke správě prostředků Azure. |
Název prostředku | testsignalr | Zadejte jedinečný název prostředku, který se použije pro prostředek služby SignalR. Pokud je testsignalr už ve vaší oblasti pořízený, přidejte číslici nebo znak, dokud nebude název jedinečný. Název musí být řetězec 1 až 63 znaků a musí obsahovat jenom číslice, písmena a pomlčka ( - ). Název nemůže začínat ani končit znakem spojovníku a po sobě jdoucí znaky spojovníku nejsou platné. |
Oblast | Vyberte vaši oblast | Vyberte příslušnou oblast pro novou instanci služby SignalR. Služba Azure SignalR není v současné době dostupná ve všech oblastech. Další informace najdete v tématu Dostupnost oblasti služby Azure SignalR Service. |
Cenová úroveň | Vyberte Změnit a pak zvolte Free (pouze vývoj/testování). Zvolením možnosti Vybrat potvrďte svou volbu cenové úrovně. | Služba Azure SignalR má tři cenové úrovně: Free, Standard a Premium. Kurzy používají úroveň Free , pokud není uvedeno jinak v požadavcích. Další informace o rozdílech funkcí mezi úrovněmi a cenami najdete v tématu Ceny služby Azure SignalR. |
Režim služby | Volba příslušného režimu služby | Použití výchozího nastavení při hostování logiky centra SignalR ve webových aplikacích a použití služby SignalR jako proxy serveru. Bezserverové použití bezserverových technologií, jako je Azure Functions, k hostování logiky centra SignalR. Klasický režim je pouze kvůli zpětné kompatibilitě a nedoporučuje se používat. Další informace najdete v tématu Režim služby ve službě Azure SignalR. |
V kurzech SignalR nemusíte měnit nastavení na kartách Sítě a značky .
- Vyberte tlačítko Zkontrolovat a vytvořit v dolní části karty Základy.
- Na kartě Zkontrolovat a vytvořit zkontrolujte hodnoty a pak vyberte Vytvořit. Dokončení nasazení chvíli trvá.
- Po dokončení nasazení vyberte tlačítko Přejít k prostředku .
- Na stránce prostředku SignalR vyberte v nabídce na levé straně v části Nastavení klíče.
- Zkopírujte připojovací řetězec pro primární klíč. Tuto připojovací řetězec budete potřebovat ke konfiguraci aplikace později v tomto kurzu.
Bezserverový režim se nepodporuje pro aplikace ASP.NET SignalR. Pro instanci služby Azure SignalR Vždy používejte Výchozí nebo Classic .
Prostředky Azure použité v tomto rychlém startu můžete vytvořit také pomocí skriptu Služby SignalR.
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Klonování ukázkové aplikace
Zatímco probíhá nasazování služby, pojďme se podívat na práci s kódem. Naklonujte ukázkovou aplikaci z GitHubu, nastavte připojovací řetězec služby SignalR a spusťte aplikaci místně.
Otevřete okno terminálu Git. Přejděte do složky, kam chcete klonovat ukázkový projekt.
Ukázkové úložiště naklonujete spuštěním následujícího příkazu. Tento příkaz vytvoří na vašem počítači kopii ukázkové aplikace.
git clone https://github.com/aspnet/AzureSignalR-samples.git
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Konfigurace a spuštění webové aplikace Chatovací místnost
Spusťte Visual Studio a otevřete řešení ve složce aspnet-samples/ChatRoom/ klonovaného úložiště.
V prohlížeči, kde je web Azure Portal otevřený, vyhledejte a vyberte instanci, kterou jste vytvořili.
Výběrem možnosti Klíče zobrazte připojovací řetězce instance služby SignalR.
Vyberte a zkopírujte primární připojovací řetězec.
Teď nastavte připojovací řetězec v souboru web.config.
Nezpracované připojovací řetězec se v tomto článku zobrazují jenom pro demonstrační účely. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
<configuration> <connectionStrings> <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/> </connectionStrings> ... </configuration>
V Startup.cs místo volání je nutné volat
MapSignalR()
MapAzureSignalR({YourApplicationName})
a předávat připojovací řetězec, aby se aplikace místo hostování SignalR sama připojila ke službě. Nahraďte{YourApplicationName}
název aplikace. Tento název je jedinečný název pro rozlišení této aplikace od ostatních aplikací. Jako hodnotu můžete použítthis.GetType().FullName
.public void Configuration(IAppBuilder app) { // Any connection or hub wire up and configuration should go here app.MapAzureSignalR(this.GetType().FullName); }
Před použitím těchto rozhraní API musíte také odkazovat na sadu SDK služby. Otevření nástrojů | Správce balíčků NuGet | Správce balíčků konzolu a spusťte příkaz:
Install-Package Microsoft.Azure.SignalR.AspNet
Kromě těchto změn zůstává všechno ostatní stejné, stále můžete použít rozhraní centra, které už znáte k psaní obchodní logiky.
Poznámka:
V implementaci je koncový bod
/signalr/negotiate
zpřístupněn pro vyjednávání pomocí sady SDK služby Azure SignalR. Vrátí zvláštní odpověď vyjednávání, když se klienti pokusí připojit a přesměrovat klienty na koncový bod služby definovaný v připojovací řetězec.Stisknutím klávesy F5 spusťte projekt v režimu ladění. Aplikace se spouští místně. Místo hostování modulu runtime SignalR samotnou aplikací se teď připojuje ke službě Azure SignalR.
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Vyčištění prostředků
Pokud nebudete tuto aplikace nadále používat, odstraňte na základě následujícího postupu všechny prostředky vytvořené podle tohoto rychlého startu, aby se vám neúčtovaly žádné poplatky:
Úplně nalevo na webu Azure Portal vyberte Skupiny prostředků a pak vyberte skupinu prostředků, kterou jste vytvořili. Případně můžete použít vyhledávací pole a skupinu prostředků vyhledat podle jejího názvu.
V okně, které se otevře, vyberte příslušnou skupinu prostředků a pak klikněte na Odstranit skupinu prostředků.
V novém okně zadejte název skupiny prostředků, kterou chcete odstranit, a pak klikněte na Odstranit.
Důležité
Odstranění skupiny prostředků je nevratné a skupina prostředků včetně všech v ní obsažených prostředků bude trvale odstraněna. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro hostování této ukázky ve stávající skupině prostředků obsahující prostředky, které chcete zachovat, můžete místo odstranění skupiny prostředků odstranit jednotlivé prostředky z jejich odpovídajících oken.
Přihlaste se k webu Azure Portal a potom vyberte Skupiny prostředků.
Do textového pole Filtrovat podle názvu... zadejte název vaší skupiny prostředků. V pokynech v tomto rychlém startu se používala skupina prostředků SignalRTestResources. Ve výsledcích hledání klikněte na ... u vaší skupiny prostředků a pak na Odstranit skupinu prostředků.
Po chvíli bude skupina prostředků včetně všech obsažených prostředků odstraněná.
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Další kroky
V tomto rychlém startu jste vytvořili nový prostředek služby Azure SignalR a použili ho s ASP.NET webovou aplikací. Dále se dozvíte, jak vyvíjet aplikace v reálném čase pomocí služby Azure SignalR s ASP.NET Core.