Sdílet prostřednictvím


Kurz: Publikování a přihlášení k odběru zpráv pomocí rozhraní WEBSocket API a sady SDK služby Azure Web PubSub

Služba Azure Web PubSub umožňuje snadno vytvářet aplikace pro zasílání zpráv v reálném čase. V tomto kurzu se dozvíte, jak se přihlásit k odběru služby pomocí rozhraní WebSocket API a publikovat zprávy pomocí sady SDK služby Web PubSub.

V tomto kurzu se naučíte:

  • Vytvoření instance služby Web PubSub
  • Vygenerování úplné adresy URL pro navázání připojení WebSocket
  • Vytvoření klienta odběratele Web PubSub pro příjem zpráv pomocí standardního protokolu WebSocket
  • Vytvoření klienta vydavatele Web PubSub pro publikování zpráv pomocí sady SDK služby Web PubSub

Požadavky

  • Předplatné Azure, vytvořte si bezplatný účet.
  • Příkazové prostředí Bash. Použijte buď místní prostředí, nebo prostředí Bash v Azure Cloud Shellu.
  • Pokud běží na místním počítači , nainstalujte Azure CLI.

Příkazy v tomto kurzu můžete spustit pomocí příkazového prostředí Windows cmd.exe místo prostředí Bash.

Pokud projekt vytváříte na místním počítači, musíte nainstalovat závislosti pro jazyk, který používáte:

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řipojení WebPubSubServiceClient.

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.

Příprava prostředí

Nastavení Azure CLI pro místní vývoj

Pomocí těchto kroků nastavte Azure CLI a prostředí vašeho projektu.

  1. Otevřete příkazové prostředí.

  2. Upgradujte na nejnovější verzi Azure CLI.

    az upgrade
    
  3. Nainstalujte rozšíření Azure CLI pro Web PubSub.

    az extension add --name webpubsub
    
  4. Přihlaste se k Azure CLI. Po zobrazení výzvy zadejte své přihlašovací údaje Azure.

    az login
    

Vytvoření skupiny zdrojů

Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Pomocí příkazu az group create vytvořte skupinu prostředků s názvem myResourceGroup v eastus umístění.

az group create --name myResourceGroup --location EastUS

1. Vytvoření instance Azure Web PubSub

Vytvoření instance Web PubSub

Pokud chcete vytvořit instanci Web PubSub ve skupině prostředků, kterou jste vytvořili, použijte příkaz Azure CLI az webpubsub create . Následující příkaz vytvoří prostředek Free Web PubSub ve skupině myResourceGroup prostředků v EastUS:

Každý prostředek Web PubSub musí mít jedinečný název. Nahraďte <název-unique-resource-name> názvem vaší instance Web PubSub v následujícím příkazu.

az webpubsub create --resource-group myResourceGroup --name <your-unique-resource-name> --location EastUS --sku Free_F1

Výstup tohoto příkazu zobrazuje vlastnosti nově vytvořeného prostředku. Poznamenejte si následující vlastnosti:

  • name: Název web pubSub, který jste zadali v parametru --name výše.
  • hostName: V příkladu je <your-unique-resource-name>.webpubsub.azure.com/název hostitele .

V tuto chvíli je váš účet Azure jediným autorizovaným k provádění jakýchkoli operací s tímto novým prostředkem.

Získání připojovacího řetězce

K získání připojovacího řetězce služby použijte příkaz azure CLI az webpubsub key. <your-unique-resource-name> Zástupný symbol nahraďte názvem vaší instance Azure Web PubSub.

az webpubsub key show --resource-group myResourceGroup --name <your-unique-resource-name> --query primaryConnectionString --output tsv

Zkopírujte připojovací řetězec pro pozdější použití.

Vytvoření klienta odběratele

Klienti se připojují ke službě Azure Web PubSub prostřednictvím standardního protokolu WebSocket pomocí ověřování JSON Web Token (JWT ). Sada SDK služby poskytuje pomocné metody pro vygenerování tokenu. V tomto kurzu odběratel přímo vygeneruje token z ConnectionString. V reálných aplikacích obvykle aplikace na straně serveru zpracovává pracovní postup ověřování/autorizace. Pokud chcete lépe porozumět pracovnímu postupu, podívejte se na kurz Vytvoření chatovací aplikace.

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řipojení WebPubSubServiceClient.

  1. Nejprve vytvořte adresář projektu s názvem subscriber pro tento projekt a nainstalujte požadované závislosti:

    • Balíček Websocket.Client je balíček třetí strany podporující připojení WebSocket. Můžete použít libovolné rozhraní API nebo knihovnu, která podporuje WebSocket.
    • Balíček Azure.Messaging.WebPubSub SDK pomáhá generovat token JWT.
    mkdir subscriber
    cd subscriber
    dotnet new console
    dotnet add package Websocket.Client --version 4.3.30
    dotnet add package Azure.Messaging.WebPubSub --version 1.0.0
    
  2. Nahraďte kód v následujícím Program.cs kódu, který se připojuje ke službě:

    using System;
    using System.Threading.Tasks;
    
    using Azure.Messaging.WebPubSub;
    
    using Websocket.Client;
    
    namespace subscriber
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                if (args.Length != 2)
                {
                    Console.WriteLine("Usage: subscriber <connectionString> <hub>");
                    return;
                }
                var connectionString = args[0];
                var hub = args[1];
    
                // Either generate the URL or fetch it from server or fetch a temp one from the portal
                var serviceClient = new WebPubSubServiceClient(connectionString, hub);
                var url = serviceClient.GetClientAccessUri();
    
                using (var client = new WebsocketClient(url))
                {
                    // Disable the auto disconnect and reconnect because the sample would like the client to stay online even no data comes in
                    client.ReconnectTimeout = null;
                    client.MessageReceived.Subscribe(msg => Console.WriteLine($"Message received: {msg}"));
                    await client.Start();
                    Console.WriteLine("Connected.");
                    Console.Read();
                }
            }
        }
    }
    
    

    Kód vytvoří připojení WebSocket, které je připojeno k centru ve službě Web PubSub. Centrum je logická jednotka v podsítě Web PubSub, kde můžete publikovat zprávy do skupiny klientů. Klíčové koncepty obsahují podrobné vysvětlení termínů použitých v podsítě Web PubSub.

    Služba Web PubSub používá ověřování pomocí webového tokenu JSON (JWT ). Ukázkový kód používá WebPubSubServiceClient.GetClientAccessUri() v sadě Web PubSub SDK k vygenerování adresy URL služby, která obsahuje úplnou adresu URL s platným přístupovým tokenem.

    Po navázání připojení klient obdrží zprávy prostřednictvím připojení WebSocket. Klient používá client.MessageReceived.Subscribe(msg => ...)); k naslouchání příchozím zprávům.

  3. Pokud chcete spustit odběratele, spusťte následující příkaz, který nahradíte <Web-PubSub-connection-string> připojovací řetězec, které jste zkopírovali dříve:

    dotnet run <Web-PubSub-connection-string> "myHub1"
    

2. Publikování zpráv pomocí sady SDK služby

Vytvořte vydavatele pomocí sady Azure Web PubSub SDK k publikování zprávy do připojeného klienta. Pro tento projekt je potřeba otevřít další příkazové prostředí.

  1. Nejprve vytvořte adresář projektu s názvem publisher a nainstalujte požadované závislosti:

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Program.cs Aktualizujte soubor tak, aby používal WebPubSubServiceClient třídu a odesílal zprávy klientům.

    using System;
    using System.Threading.Tasks;
    using Azure.Messaging.WebPubSub;
    
    namespace publisher
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                if (args.Length != 3) {
                    Console.WriteLine("Usage: publisher <connectionString> <hub> <message>");
                    return;
                }
                var connectionString = args[0];
                var hub = args[1];
                var message = args[2];
    
                // Either generate the token or fetch it from server or fetch a temp one from the portal
                var serviceClient = new WebPubSubServiceClient(connectionString, hub);
                await serviceClient.SendToAllAsync(message);
            }
        }
    }
    
    

    Volání SendToAllAsync() jednoduše odešle zprávu všem připojeným klientům v centru.

  3. Odešlete zprávu spuštěním následujícího příkazu. Nahraďte <Web-PubSub-connection-string> připojovací řetězec, kterou jste zkopírovali dříve.

    dotnet run <Web-PubSub-connection-string> "myHub1" "Hello World"
    
  4. Ověřte, že příkazové prostředí odběratele obdrží zprávu:

    Message received: Hello World
    

Vyčištění

Prostředky, které jste vytvořili v tomto rychlém startu, můžete odstranit odstraněním skupiny prostředků, která je obsahuje.

az group delete --name myResourceGroup --yes

Pokud nechcete azure Cloud Shell dál používat, můžete se vyhnout kumulování nákladů odstraněním skupiny prostředků, která obsahuje přidružený účet úložiště. Skupina prostředků má název cloud-shell-storage-<your-region>. Spusťte následující příkaz a nahraďte <CloudShellResourceGroup> názvem skupiny Cloud Shellu.

az group delete --name <CloudShellResourceGroup> --yes

Upozornění

Odstraněním skupin prostředků se odstraní všechny prostředky, včetně prostředků vytvořených mimo rozsah tohoto kurzu.

Další kroky

Tento kurz vám poskytne základní představu o tom, jak se připojit ke službě Web PubSub a publikovat zprávy do připojených klientů.

Projděte si další kurzy, ve které se dozvíte, jak službu používat.