Megosztás a következőn keresztül:


Üzenetek leküldése a kiszolgálóról

A jól ismert HTTP-kérés-/válaszmodellt úgy tervezték, hogy könnyen használható és méretezhető legyen. Manapság azonban a végfelhasználók sokkal többet igényelnek az internetről, mint amit eredetileg terveztek. A HTTP-protokoll megköveteli, hogy a felhasználók kezdeményezhessék a kérést a válasz fogadásához. A fejlesztőknek azonban módot kell adni arra, hogy adatokat küldjenek a kiszolgálóról az ügyfeleknek anélkül, hogy kérték volna őket; más szóval adatokat kell "leküldniük" az ügyfeleknek, például le kell küldeniük egy termék legújabb ajánlattételi árát egy aukciós oldalon, vagy gyorsan változó tőzsdei árfolyamokat kell leküldniük egy pénzügyi alkalmazásban.

Az alkalmazáskiszolgáló GIF-fájlja, amely adatokat küld a csatlakoztatott ügyfélnek.

Ez a rövid útmutató bemutatja, hogyan

  • feliratkozás alkalmazáskiszolgálóról érkező üzenetekre
  • adatok leküldése egy alkalmazáskiszolgálóról az összes csatlakoztatott ügyfélnek

Előfeltételek

  • Egy Web PubSub-erőforrás. Ha még nem hozott létre egyet, kövesse a következő útmutatót: Web PubSub-erőforrás létrehozása
  • Kódszerkesztő, például Visual Studio Code
  • Telepítse a használni kívánt nyelv függőségeit

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

Az alkalmazáskiszolgálóról leküldett üzenetekre való feliratkozáshoz egy ügyfélnek , legyen az egy böngésző, egy mobilalkalmazás vagy egy IoT-eszköz, először csatlakoznia kell a Web PubSub-erőforráshoz, és figyelnie kell a megfelelő üzeneteseményt.

Hozzon létre egy nevű subscriber projektkönyvtárat, és telepítse a szükséges függőségeket

mkdir subscriber
cd subscriber
npm init -y
    
# The client SDK is available as a module on NPM
npm install @azure/web-pubsub-client

Csatlakozzon a Web PubSub-erőforráshoz, és regisztráljon egy figyelőt az server-message eseményhez

Az ügyfél ügyfél-hozzáférési URL-címet használ az erőforráshoz való csatlakozáshoz és hitelesítéshez. Ez az URL-cím a következő mintát wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>követi: . Az ügyfél többféleképpen is beszerezheti az ügyfélhozzáférési URL-címet. Ebben a rövid útmutatóban az alábbi ábrán látható Azure Portal másolhat és illeszthet be egyet. Az ajánlott eljárás az ügyfél-hozzáférési URL-cím kódolása a kódban. Az éles környezetben általában beállítunk egy alkalmazáskiszolgálót, hogy igény szerint visszaadjuk ezt az URL-címet. Az ügyfél-hozzáférési URL-cím létrehozása részletesen ismerteti a gyakorlatot.

Az ábrán az ügyfélhozzáférési URL-cím lekérése látható.

Ahogy a fenti ábrán is látható, az ügyfél a nevű myHub1központhoz csatlakozik.

subscriber A projektmappában hozzon létre egy nevű subscribe.js fájlt az alábbi kóddal

const { WebPubSubClient } = require("@azure/web-pubsub-client");

// Instantiates the client object
// <client-access-url> is copied from Azure portal mentioned above
const client = new WebPubSubClient("<client-access-url>")

// Registers a handler for the "server-message" event
client.on("server-message", (e) => {
    console.log(`Received message ${e.message.data}`)
});

// Before a client can receive a message, 
// you must invoke start() on the client object.
client.start();

A program futtatása

node subscribe.js

Ez az ügyfél kapcsolatot létesít a Web PubSub-erőforrással, és készen áll az alkalmazáskiszolgálóról leküldett üzenetek fogadására.

Üzenetek leküldése az alkalmazáskiszolgálóról

Most, hogy egy ügyfél csatlakoztatta a Web PubSub-erőforrást, bármikor leküldhet üzeneteket egy alkalmazáskiszolgálóról a Web PubSub által biztosított kiszolgálói SDK-val.

Hozzon létre egy új projektkönyvtárat nevű publisher és telepítse a szükséges függőségeket

mkdir publisher
cd publisher

npm init

# This command installs the server SDK from NPM, 
# which is different from the client SDK you used in subscribe.js
npm install --save @azure/web-pubsub

Hozzon létre egy publish.js fájlt az alábbi kóddal

const { WebPubSubServiceClient } = require('@azure/web-pubsub');

// This is the hub name we used on Azure portal when generating the Client Access URL. 
// It ensures this server can push messages to clients in the hub named "myHub1".
const hub = "myHub1";
    
let server = new WebPubSubServiceClient(process.env.WebPubSubConnectionString, hub);

// By default, the content type is `application/json`. 
// Specify contentType as `text/plain` for this demo.
server.sendToAll(process.argv[2], { contentType: "text/plain" });

A server.sendToAll() hívás üzenetet küld a központ összes csatlakoztatott ügyfelének.

A kapcsolati sztring lekérése

Fontos

A kapcsolati sztring a Web PubSub szolgáltatás eléréséhez szükséges engedélyezési adatokat tartalmazzák. A kapcsolati sztring belüli hozzáférési kulcs hasonló a szolgáltatás fő jelszavához.

Ebben a rövid útmutatóban Azure Portal alább látható módon fogjuk megkapni. Egy diagram bemutatja, hogyan szerezheti be az ügyfélhozzáférési URL-címet.

A kiszolgálóprogram futtatása

Futtassa az alábbi parancsokat egy új parancshéjban.

# Set the environment variable for your connection string.
export WebPubSubConnectionString="<Put your connection string here>" 

node publish.js "Hello World"

A fogadott üzenetek megfigyelése az ügyféloldalon

GIF, amely egy alkalmazáskiszolgálót mutat be, amely adatokat küld a csatlakoztatott ügyfélnek.

Próbálja meg futtatni ugyanazt a "subscribe" programot több parancshéjban, hogy több ügyfelet ösztönözzen. A "közzétételi" program futtatása után látnia kell, hogy az üzenetek valós időben érkeznek az összes ügyfélnek.

Összefoglalás

Ez a rövid útmutató bemutatja, hogy milyen egyszerűen lehet üzeneteket leküldni egy alkalmazáskiszolgálóról egy központ összes csatlakoztatott ügyfelére. Emellett a Web PubSub lehetővé teszi az üzenetek leküldését a

  • a központi ügyfelek egy részhalmaza
  • egy adott csoport egy központban
  • egy csoport ügyfeleinek egy részhalmaza

Ezek az API-k számos használati esetet tesznek lehetővé, így a fejlesztők az egyedi üzleti logikára összpontosíthatnak, miközben meggyőződhetnek arról, hogy a Web PubSub alacsony késést (<100 ms), magas rendelkezésre állást és nagy léptékű (több millió egyidejű kapcsolatot) kínál.

Következő lépések

A következő lépésben megismerkedünk a Web PubSub eseményrendszerével, amely szükséges a teljes webalkalmazások létrehozásához.