Oktatóanyag: Üzenetek közzététele és feliratkozása a WebSocket API és az Azure Web PubSub service SDK használatával

Az Azure Web PubSub szolgáltatással egyszerűen készíthet valós idejű webes üzenetküldő alkalmazásokat. Ebben az oktatóanyagban megtudhatja, hogyan iratkozhat fel a szolgáltatásra a WebSocket API használatával, és hogyan tehet közzé üzeneteket a Web PubSub szolgáltatás SDK-val.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Web PubSub szolgáltatáspéldány létrehozása
  • A WebSocket-kapcsolat létrehozásához hozza létre a teljes URL-címet
  • Webes PubSub-előfizetői ügyfél létrehozása üzenetek fogadásához standard WebSocket protokollal
  • Webes PubSub-közzétevő ügyfél létrehozása üzenetek közzétételéhez a Web PubSub service SDK használatával

Előfeltételek

A windowsos cmd.exe parancshéjat bash-rendszerhéj helyett használhatja az oktatóanyag parancsainak futtatásához.

Ha a projektet helyi gépen hozza létre, telepítenie kell a használt nyelv függőségeit:

A környezet előkészítése

Azure CLI beállítása helyi fejlesztéshez

Kövesse az alábbi lépéseket az Azure CLI és a projektkörnyezet beállításához.

  1. Nyisson meg egy parancshéjat.

  2. Frissítsen az Azure CLI legújabb verziójára.

    az upgrade
    
  3. Telepítse az Azure CLI-bővítményt a Web PubSubhoz.

    az extension add --name webpubsub
    
  4. Jelentkezzen be az Azure CLI-be. Az utasításokat követve adja meg azure-beli hitelesítő adatait.

    az login
    

Erőforráscsoport létrehozása

Az erőforráscsoport olyan logikai tároló, amelybe a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat. Az az group create paranccsal hozzon létre egy, a eastus helyen elnevezett myResourceGroup erőforráscsoportot.

az group create --name myResourceGroup --location EastUS

1. Azure Web PubSub-példány létrehozása

Web PubSub-példány létrehozása

Az Azure CLI az webpubsub create paranccsal hozzon létre egy Web PubSub-t a létrehozott erőforráscsoportban. Az alábbi parancs létrehoz egy ingyenes Web PubSub-erőforrást a következő EastUSerőforráscsoportbanmyResourceGroup:

Minden Web PubSub-erőforrásnak egyedi névvel kell rendelkeznie. Cserélje le <az egyedi erőforrás nevét> a Web PubSub-példány nevére az alábbi parancsban.

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

A parancs kimenete az újonnan létrehozott erőforrás tulajdonságait jeleníti meg. Jegyezze fel az alábbi két tulajdonságot:

  • név: A fenti paraméterben --name megadott Web PubSub név.
  • hostName: A példában a gazdagép neve .<your-unique-resource-name>.webpubsub.azure.com/

Ezen a ponton az Azure-fiók az egyetlen jogosult az új erőforráson végzett műveletek végrehajtására.

A kapcsolati sztring lekérése

Fontos

A kapcsolati sztring tartalmazzák azokat az engedélyezési információkat, amelyekre az alkalmazásnak szüksége van az Azure Web PubSub szolgáltatás eléréséhez. A kapcsolati sztring belüli hozzáférési kulcs hasonló a szolgáltatás gyökérjelszójához. Éles környezetben mindig ügyeljen a hozzáférési kulcsok védelmére. Az Azure Key Vault használatával biztonságosan kezelheti és elforgathatja a kulcsokat. Kerülje a hozzáférési kulcsok más felhasználók számára való terjesztését, a szigorú kódolást, illetve a mások számára hozzáférhető egyszerű szövegek mentését. Ha úgy véli, hogy illetéktelenek lettek, forgassa el a kulcsokat.

A szolgáltatás Csatlakozás ionString parancsának lekéréséhez használja az Azure CLI az webpubsub billentyűkombinációt. Cserélje le a <your-unique-resource-name> helyőrzőt az Azure Web PubSub-példány nevére.

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

Másolja a kapcsolati sztring későbbi használatra.

Előfizetői ügyfél létrehozása

Az ügyfelek a standard WebSocket protokollon keresztül csatlakoznak az Azure Web PubSub szolgáltatáshoz JSON Web Token (JWT) hitelesítéssel. A szolgáltatás SDK segítő metódusokat biztosít a jogkivonat létrehozásához. Ebben az oktatóanyagban az előfizető közvetlenül létrehozza a jogkivonatot Csatlakozás ionStringből. Valós alkalmazásokban a kiszolgálóoldali alkalmazások általában a hitelesítési/engedélyezési munkafolyamatot kezelik. A munkafolyamat jobb megismeréséhez tekintse meg a csevegőalkalmazás létrehozása című oktatóanyagot.

  1. Először hozzon létre egy projektkönyvtárat a projekthez, subscriber és telepítse a szükséges függőségeket:

    • A Websocket.Client csomag egy külső csomag, amely támogatja a WebSocket-kapcsolatokat. A WebSocketet támogató API-t/kódtárakat használhatja.
    • Az SDK-csomag Azure.Messaging.WebPubSub segít létrehozni a JWT-jogkivonatot.
    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. Cserélje le a kódot a Program.cs következő kódra, amely csatlakozik a szolgáltatáshoz:

    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();
                }
            }
        }
    }
    
    

    A kód létrehoz egy WebSocket-kapcsolatot, amely egy Web PubSub-központhoz csatlakozik. A központ egy logikai egység a Web PubSubban, ahol üzeneteket tehet közzé ügyfelek egy csoportjában. A fő fogalmak a Web PubSubban használt kifejezések részletes magyarázatát tartalmazzák.

    A Web PubSub szolgáltatás JSON Web Token (JWT) hitelesítést használ. A mintakód a Web PubSub SDK-ban egy WebPubSubServiceClient.GetClientAccessUri() OLYAN URL-címet hoz létre a szolgáltatáshoz, amely érvényes hozzáférési jogkivonattal tartalmazza a teljes URL-címet.

    A kapcsolat létrejötte után az ügyfél a WebSocket-kapcsolaton keresztül fogad üzeneteket. Az ügyfél figyeli client.MessageReceived.Subscribe(msg => ...)); a bejövő üzeneteket.

  3. Az előfizető elindításához futtassa a következő parancsot a korábban másolt kapcsolati sztring helyett<Web-PubSub-connection-string>:

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

2. Üzenetek közzététele a Service SDK használatával

Hozzon létre egy közzétevőt az Azure Web PubSub SDK használatával, hogy üzenetet tegyen közzé a csatlakoztatott ügyfélen. Ehhez a projekthez egy másik parancshéjat kell megnyitnia.

  1. Először hozzon létre egy projektkönyvtárat nevesített publisher és telepítse a szükséges függőségeket:

    mkdir publisher
    cd publisher
    dotnet new console
    dotnet add package Azure.Messaging.WebPubSub
    
  2. Frissítse a fájlt az Program.csWebPubSubServiceClient osztály használatára, és küldjön üzeneteket az ügyfeleknek.

    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);
            }
        }
    }
    
    

    A SendToAllAsync() hívás egyszerűen üzenetet küld a központ összes csatlakoztatott ügyfélének.

  3. Küldjön üzenetet az alábbi parancs futtatásával. Cserélje le <Web-PubSub-connection-string> a korábban másolt kapcsolati sztring.

    dotnet run <Web-PubSub-connection-string> "myHub1" "Hello World"
    
  4. Ellenőrizze az előfizető parancshéját, hogy megkapta-e az üzenetet:

    Message received: Hello World
    

Felesleges tartalmak törlése

Az ebben a rövid útmutatóban létrehozott erőforrások törléséhez törölje azokat tartalmazó erőforráscsoportot.

az group delete --name myResourceGroup --yes

Ha nem tervezi folytatni az Azure Cloud Shell használatát, elkerülheti a költségek halmozását a társított tárfiókot tartalmazó erőforráscsoport törlésével. Az erőforráscsoport neve cloud-shell-storage-<your-region>. Futtassa a következő parancsot a Cloud Shell-csoport nevére cserélve <CloudShellResourceGroup> .

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

Figyelemfelhívás

Az erőforráscsoportok törlése az összes erőforrást törli, beleértve az oktatóanyag hatókörén kívül létrehozott erőforrásokat is.

Következő lépések

Ez az oktatóanyag bemutatja, hogyan csatlakozhat a Web PubSub szolgáltatáshoz, és hogyan tehet közzé üzeneteket a csatlakoztatott ügyfeleknek.

A szolgáltatás használatának további megismeréséhez tekintse meg a többi oktatóanyagot.