Rychlý start: Vysílání zpráv v reálném čase z konzoly aplikace
Služba Azure SignalR poskytuje rozhraní REST API pro podporu scénářů komunikace mezi servery, jako je vysílání. Můžete zvolit libovolný programovací jazyk, který může volat rozhraní REST API. Můžete posílat zprávy do všech připojených klientů, do konkrétního klienta podle názvu nebo skupiny klientů.
V tomto rychlém startu se dozvíte, jak odesílat zprávy z aplikace příkazového řádku do připojených klientských aplikací v jazyce C#.
Důležité
Nezpracované připojovací řetězec se v tomto článku zobrazují jenom pro demonstrační účely.
Připojovací řetězec obsahuje autorizační informace potřebné pro vaši aplikaci pro přístup ke službě Azure SignalR. 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
Toto Rychlé zprovoznění je možné spustit v systémech macOS, Windows nebo Linux.
- Sada .NET Core SDK
- Textový editor nebo editor kódu podle vašeho výběru.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
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 pomocí svého účtu Azure k webu Azure Portal.
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.
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 se služba nasazuje, připravíme kód. Nejprve naklonujte ukázkovou aplikaci z GitHubu. Dále nastavte službu SignalR Service připojovací řetězec na aplikaci. Nakonec 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.
Sestavení a spuštění ukázky
Tato ukázka je konzolová aplikace, na které vidíte používání služby Azure SignalR. Jsou v ní k dispozici dva režimy:
- Režim serveru: Volání rozhraní REST API služby Azure SignalR pomocí jednoduchých příkazů
- Režim klienta: Připojení ke službě Azure SignalR a přijímání zpráv ze serveru
Dozvíte se také, jak vygenerovat přístupový token pro ověření pomocí služby Azure SignalR.
Vytvoření spustitelného souboru
Jako příklad použijeme macOS osx.10.13-x64. K dispozici jsou reference k vytváření na jiných platformách.
cd AzureSignalR-samples/samples/Serverless/
dotnet publish -c Release -r osx.10.13-x64
Spuštění klienta
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.
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>
Spuštění serveru
cd bin/Release/netcoreapp2.1/osx.10.13-x64/
Serverless server -c "<ConnectionString>" -h <HubName>
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Spuštění ukázky bez publikování
Můžete také spustit následující příkaz, který spustí server nebo klienta.
# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>
# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>
Použití uživatelských tajných kódů při zadání připojovacího řetězce
V kořenovém adresáři vzorku můžete spustit dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>"
. Potom už nebudete možnost -c "<ConnectionString>"
potřebovat.
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Využití
Po spuštění serveru použijte příkaz k odeslání zprávy:
send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast
Můžete spustit více klientů s různými názvy.
Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo nám dejte vědět.
Integrace s služby Microsoft
Služba Azure SignalR umožňuje integraci se systémem bez služby Microsoft.
Definice technických specifikací
Následující tabulka uvádí všechny podporované verze rozhraní REST API k datu vydání tohoto článku. U každé verze také najdete definiční soubor.
Verze | Stav rozhraní API | Dveře | Specifikace |
---|---|---|---|
1.0-preview |
dostupný | 5002 | Swagger |
1.0 |
dostupný | Standard | Swagger |
Dostupná rozhraní API pro jednotlivé verze najdete v následujícím seznamu.
rozhraní API | 1.0-preview | 1.0 |
---|---|---|
Všesměrové vysílání pro všechny | ✓ | ✓ |
Všesměrové vysílání do skupiny | ✓ | ✓ |
Všesměrové vysílání do některých skupin | – (zastaralé) | N / A |
Odeslat uživateli | ✓ | ✓ |
Odesílání některým uživatelům | – (zastaralé) | N / A |
Přidání uživatele do skupiny | N / A |
✓ |
Odebrání uživatele ze skupiny | N / A |
✓ |
Kontrola existence uživatele | N / A |
✓ |
Odebrání uživatele ze všech skupin | N / A |
✓ |
Odeslání do připojení | N / A |
✓ |
Přidání připojení ke skupině | N / A |
✓ |
Odebrání připojení ze skupiny | N / A |
✓ |
Zavření připojení klienta | N / A |
✓ |
Service Health | N / A |
✓ |
Všesměrové vysílání pro všechny
Verze | Metoda HTTP v rozhraní API | Adresa URL požadavku | Text požadavku |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> |
{"target": "<method-name>", "arguments": [...]} |
Všesměrové vysílání do skupiny
Verze | Metoda HTTP v rozhraní API | Adresa URL požadavku | Text požadavku |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> |
{"target": "<method-name>", "arguments": [...]} |
Odeslání uživateli
Verze | Metoda HTTP v rozhraní API | Adresa URL požadavku | Text požadavku |
---|---|---|---|
1.0-preview |
POST |
https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> |
{"target": "<method-name>", "arguments": [...]} |
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> |
{"target": "<method-name>", "arguments": [...]} |
Přidání uživatele do skupiny
Verze | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Odebrání uživatele ze skupiny
Verze | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Kontrola existence uživatele ve skupině
Verze rozhraní API | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name> |
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id> |
Stavový kód odpovědi | Popis |
---|---|
200 |
Uživatel existuje. |
404 |
Uživatel neexistuje. |
Odebrání uživatele ze všech skupin
Verze rozhraní API | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups |
Odeslání zprávy do připojení
Verze rozhraní API | Metoda HTTP v rozhraní API | Adresa URL požadavku | Text požadavku |
---|---|---|---|
1.0 |
POST |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
{ "target":"<method-name>", "arguments":[ ... ] } |
Přidání připojení ke skupině
Verze rozhraní API | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id> |
1.0 |
PUT |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name> |
Odebrání připojení ze skupiny
Verze rozhraní API | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id> |
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name> |
Zavření připojení klienta
Verze rozhraní API | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> |
1.0 |
DELETE |
https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason> |
Service Health
Verze rozhraní API | Metoda HTTP v rozhraní API | Adresa URL požadavku |
---|---|---|
1.0 |
GET |
https://<instance-name>.service.signalr.net/api/v1/health |
Stavový kód odpovědi | Popis |
---|---|
200 |
Dobrý servis |
5xx |
Chyba služby |
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.
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 zjistili, jak pomocí rozhraní REST API vysílat zprávy ze služby SignalR service do klientů v reálném čase. Dále se dozvíte více o tom, jak vyvíjet a nasazovat azure Functions pomocí vazby služby SignalR, která je postavená na rozhraní REST API.