Rychlý start: Vysílání zpráv v reálném čase z konzoly aplikace

Ve službě Azure SignalR je k dispozici rozhraní REST API pro podporu scénářů komunikace ze serveru do klienta, jako je například vysílání. Můžete použít libovolný programovací jazyk, který může provádět volání 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 aplikací připojených klientů v jazyce C#.

Požadavky

Toto Rychlé zprovoznění je možné spustit v systémech macOS, Windows nebo Linux.

Pokud předplatné Azure nemáte, vytvořte si před zahájením bezplatný účet Azure .

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 na adrese https://portal.azure.com/ 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 příkazu az signalr create v referenční dokumentaci rozhraní příkazového řádku Azure SignalR Service.

  1. Přihlaste se k webu Azure Portal.
  2. V levém horním rohu stránky vyberte + Vytvořit prostředek.
  3. Na stránce Vytvořit prostředek zadejte do textového pole Vyhledávací služby a marketplacesignalr a pak ze seznamu vyberte SignalR Service.
  4. Na SignalR Service stránce vyberte Vytvořit.
  5. Na kartě Základy zadáte základní informace pro novou instanci SignalR Service. Zadejte tyto hodnoty:
Pole Navrhovaná hodnota Popis
Předplatné Zvolte vaše předplatné. Vyberte předplatné, které chcete použít k vytvoření nové instance SignalR Service.
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. Je užitečné vytvořit novou skupinu prostředků pro tento kurz místo použití existující skupiny prostředků. 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. Tato akce je nevratná. Před odstraněním skupiny prostředků se ujistěte, že neobsahuje prostředky, které chcete zachovat.

Další informace najdete v tématu 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 se testsignalr už ve vaší oblasti používá, přidejte číslici nebo znak, dokud nebude název jedinečný.

Název musí být řetězec 1 až 63 znaků a obsahovat pouze číslice, písmena a znak spojovníku (-). Název nemůže začínat ani končit znakem spojovníku a po sobě jdoucí znaky spojovníku nejsou platné.
Oblast Zvolte svou oblast. Vyberte příslušnou oblast pro novou instanci SignalR Service.

Azure SignalR Service momentálně není k dispozici ve všech oblastech. Další informace najdete v tématu o dostupnosti Azure SignalR Service oblastí.
Cenová úroveň Vyberte Změnit a pak zvolte Free (Pouze vývoj/testování). Výběrem možnosti Vybrat potvrďte svou volbu cenové úrovně. Azure SignalR Service 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 mezi úrovněmi a cenami najdete v tématu Azure SignalR Service cenách.
Režim služby Volba vhodného režimu služby pro účely tohoto kurzu Pro ASP.NET použijte výchozí hodnotu. Pro Azure Functions nebo rozhraní REST API používejte bez serveru.

Klasický režim se nepoužívá v kurzech Azure SignalR.

Další informace najdete v tématu Režim služby v Azure SignalR Service.

Pro kurzy SignalR nemusíte měnit nastavení na kartách Sítě a značky .

  1. V dolní části karty Základy vyberte tlačítko Zkontrolovat a vytvořit.
  2. Na kartě Zkontrolovat a vytvořit zkontrolujte hodnoty a pak vyberte Vytvořit. Dokončení nasazení bude chvíli trvat.
  3. Po dokončení nasazení vyberte tlačítko Přejít k prostředku .
  4. Na obrazovce prostředku SignalR vyberte v nabídce vlevo v části Nastaveníklávesy.
  5. Zkopírujte připojovací řetězec pro primární klíč. Tento 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 nasazuje služba, přejděme na přípravu kódu. Naklonujte ukázkovou aplikaci z GitHubu, nastavte připojovací řetězec služby SignalR Service a spusťte aplikaci místně.

  1. Otevřete okno terminálu Git. Přejděte do složky, kam chcete klonovat ukázkový projekt.

  2. 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

Můžete také zjistit, jak vygenerovat přístupový token k 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

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í

Server nebo klienta můžete také spustit s použitím následujícího příkazu

# 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 se službami třetích stran

Služba Azure SignalR umožňuje v systému integraci služeb třetích stran.

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 K dispozici. 5002 Swagger
1.0 K dispozici. 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
Odeslání 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> Stejný jako výše uvedený

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> Stejný jako výše uvedený

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> Stejný jako výše uvedený

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 Description
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 Description
200 Dobrý servis
5xx Chyba služby

Máte problémy? Vyzkoušejte průvodce odstraňováním potíží nebo dejte nám 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:

  1. Ú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.

  2. V okně, které se otevře, vyberte příslušnou skupinu prostředků a pak klikněte na Odstranit skupinu prostředků.

  3. 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 dejte nám vědět.

Další kroky

V tomto rychlém startu jste zjistili, jak pomocí rozhraní REST API vysílat zprávy z SignalR Service do klientů v reálném čase. V dalším kroku se dozvíte více o tom, jak vyvíjet a nasazovat Azure Functions pomocí vazby SignalR Service, která je založená na rozhraní REST API.