Sdílet prostřednictvím


Nabízení zpráv ze serveru

Známý model požadavků a odpovědí HTTP byl navržen tak, aby byl snadno použitelný a škálovatelný. V současné době však koncoví uživatelé vyžadují mnohem více z webu, než bylo původně určeno. Protokol HTTP vyžaduje, aby uživatelé zahájili požadavek, aby obdrželi odpověď. Vývojáři ale potřebují způsob, jak odesílat data ze serveru klientům, aniž by o ně žádali; Jinými slovy, musí " nabízet" data klientům, jako je například nabízení nejnovější ceny produktu na aukční lokalitě nebo rychle se pohyblivé ceny akcií v finanční aplikaci.

GIF aplikačního serveru, který odesílá data do připojeného klienta

Tato příručka pro rychlý start ukazuje, jak

  • přihlášení k odběru zpráv z aplikačního serveru
  • nabízení dat z aplikačního serveru všem připojeným klientům

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.

Požadavky

  • Prostředek Web PubSub. Pokud jste ho nevytvořili, můžete postupovat podle pokynů: Vytvoření prostředku Web PubSub
  • Editor kódu, například Visual Studio Code
  • Nainstalujte závislosti pro jazyk, který chcete použít.

Vytvoření klienta odběratele

Pokud se chcete přihlásit k odběru zpráv odsílaných z aplikačního serveru, klienta, jako je prohlížeč, mobilní aplikace nebo zařízení IoT, musí se nejprve připojit k prostředku Web PubSub a naslouchat příslušné události zprávy.

Vytvoření adresáře projektu s názvem subscriber a instalace požadovaných závislostí

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

Připojte se k prostředku Web PubSub a zaregistrujte pro událost naslouchací server-message proces.

Klient používá adresu URL klientského přístupu k připojení a ověření s vaším prostředkem. Tato adresa URL se řídí vzorem wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>. Klient může mít několik způsobů, jak získat adresu URL klientského přístupu. Pro účely tohoto rychlého startu můžete zkopírovat a vložit jeden z webu Azure Portal zobrazený v následujícím diagramu. Osvědčeným postupem je nezakódovat adresu URL klientského přístupu v kódu. V produkčním světě obvykle nastavíme aplikační server tak, aby tuto adresu URL vrátil na vyžádání. Vygenerování adresy URL klientského přístupu podrobně popisuje postup.

Diagram ukazuje, jak získat adresu URL přístupu klienta.

Jak je znázorněno v diagramu výše, klient připojí centrum s názvem myHub1.

subscriber Ve složce projektu vytvořte soubor s názvem subscribe.js s následujícím kódem.

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

Spuštění programu

node subscribe.js

Teď tento klient vytvoří připojení k vašemu prostředku Web PubSub a je připravený přijímat zprávy odesílané z aplikačního serveru.

Nabízení zpráv z aplikačního serveru

Teď, když máte klienta připojeného k prostředku Web PubSub, můžete odesílat zprávy z aplikačního serveru kdykoli pomocí sady SDK serveru poskytované web pubSub.

Vytvoření nového adresáře projektu s názvem publisher a instalace požadovaných závislostí

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

Vytvořte publish.js soubor s následujícím kódem.

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

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

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

Důležité

Připojovací řetězec obsahuje informace o autorizaci vyžadované pro přístup ke službě Web PubSub vaší aplikace. Přístupový klíč uvnitř připojovací řetězec je podobný kořenovému heslu pro vaši službu.

Pro tuto příručku pro rychlý start ji získáme z webu Azure Portal, jak je znázorněno níže. Diagram znázorňuje, jak získat adresu URL přístupu klienta.

Spuštění serverového programu

V novém příkazovém prostředí spusťte následující příkazy.

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.

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

node publish.js "Hello World"

Sledování přijatých zpráv na straně klienta

GIF znázorňující server aplikace, který odesílá data do připojeného klienta

Zkuste spustit stejný program "přihlásit k odběru" ve více příkazových prostředích, aby se podnítila více než klienti. Jakmile se spustí program publikovat, měli byste vidět, že se zprávy doručují v reálném čase všem těmto klientům.

Shrnutí

Tento rychlý start ukazuje, jak snadné je odesílat zprávy z aplikačního serveru všem připojeným klientům v centru. Web PubSub navíc umožňuje odesílat zprávy do

  • podmnožina klientů v centru
  • konkrétní skupina v centru
  • podmnožina klientů ve skupině

Tato rozhraní API umožňují širokou škálu případů použití, což vývojářům umožňuje zaměřit se na jedinečnou obchodní logiku a zároveň mít jistotu, že Web PubSub nabízí nízkou latenci (<100 ms), vysokou dostupnost a masivní škálování (milion+ souběžná připojení).

Další kroky

V dalším kroku prozkoumáme, jak pracovat se systémem událostí Web PubSub, který je nezbytný k vytvoření kompletních webových aplikací.