Delen via


Berichten pushen vanaf de server

Het vertrouwde HTTP-aanvraag-/antwoordmodel is ontworpen om eenvoudig te kunnen werken met en schaalbaar te zijn. Tegenwoordig vragen eindgebruikers echter veel meer van het web dan het oorspronkelijk was ontworpen. Voor het HTTP-protocol moeten gebruikers de aanvraag initiëren om een antwoord te ontvangen. Maar ontwikkelaars hebben een manier nodig om gegevens van server naar clients te verzenden zonder dat ze erom vragen; met andere woorden, ze moeten 'pushen' gegevens naar klanten, zoals het pushen van de meest recente biedprijs van een product op een veilingsite of snel veranderende aandelenkoersen in een financiële toepassing.

GIF van toepassingsserver die gegevens pusht naar de verbonden client.

In deze snelstartgids ziet u hoe u

  • abonneren op berichten van een toepassingsserver
  • gegevens van een toepassingsserver naar alle verbonden clients pushen

Belangrijk

Onbewerkte verbindingsreeks worden alleen in dit artikel weergegeven voor demonstratiedoeleinden.

Een verbindingsreeks bevat de autorisatiegegevens die nodig zijn voor uw toepassing voor toegang tot de Azure Web PubSub-service. De toegangssleutel in de verbindingsreeks is vergelijkbaar met een hoofdwachtwoord voor uw service. Beveilig uw toegangssleutels altijd in productieomgevingen. Gebruik Azure Key Vault om uw sleutels veilig te beheren en te roteren en uw verbinding te beveiligen.WebPubSubServiceClient

Vermijd het distribueren van toegangssleutels naar andere gebruikers, het coderen ervan of het opslaan van ze ergens in tekst zonder opmaak die toegankelijk is voor anderen. Draai uw sleutels als u denkt dat ze mogelijk zijn aangetast.

Vereisten

  • Een Web PubSub-resource. Als u er nog geen hebt gemaakt, kunt u de richtlijnen volgen: Een Web PubSub-resource maken
  • Een code-editor zoals Visual Studio Code
  • Installeer de afhankelijkheden voor de taal die u wilt gebruiken

Een abonneeclient maken

Als u zich wilt abonneren op berichten die zijn gepusht vanaf uw toepassingsserver, een client, of het nu gaat om een browser, een mobiele app of een IoT-apparaat, moet u eerst verbinding maken met uw Web PubSub-resource en luistert naar de juiste berichtgebeurtenis.

Een projectmap met de naam subscriber maken en vereiste afhankelijkheden installeren

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

Maak verbinding met uw Web PubSub-resource en registreer een listener voor de server-message gebeurtenis

Een client gebruikt een CLIENT Access-URL om verbinding te maken en te verifiëren met uw resource. Deze URL volgt een patroon van wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>. Een client kan een aantal manieren hebben om de URL voor clienttoegang te verkrijgen. Voor deze quickstart kunt u er een kopiëren en plakken vanuit De Azure-portal die in het volgende diagram wordt weergegeven. Het is raadzaam om de URL voor clienttoegang niet in uw code vast te stellen. In de productiewereld hebben we meestal een app-server ingesteld om deze URL op aanvraag te retourneren. De URL voor clienttoegang genereren beschrijft de procedure in detail.

In het diagram ziet u hoe u de URL voor clienttoegang kunt ophalen.

Zoals wordt weergegeven in het bovenstaande diagram, wordt de client gekoppeld aan de hub met de naam myHub1.

Maak in de subscriber projectmap een bestand met de naam subscribe.js met de volgende code

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

Het programma uitvoeren

node subscribe.js

Deze client brengt nu een verbinding tot stand met uw Web PubSub-resource en is klaar om berichten te ontvangen die zijn gepusht vanaf uw toepassingsserver.

Berichten pushen vanaf uw toepassingsserver

Nu u een client hebt verbonden met uw Web PubSub-resource, kunt u op elk gewenst moment berichten van een toepassingsserver pushen met behulp van de server-SDK van Web PubSub.

Maak een nieuwe projectmap met de naam publisher en installeer de vereiste afhankelijkheden

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

publish.js Een bestand maken met de volgende code

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

De server.sendToAll() oproep verzendt een bericht naar alle verbonden clients in een hub.

De verbindingsreeks ophalen

Belangrijk

Een verbindingsreeks bevat autorisatiegegevens die vereist zijn voor uw toepassing voor toegang tot de Web PubSub-service. De toegangssleutel in de verbindingsreeks is vergelijkbaar met een hoofdwachtwoord voor uw service.

Voor deze snelstartgids krijgt u deze uit Azure Portal, zoals hieronder wordt weergegeven. Een diagram laat zien hoe u clienttoegangs-URL kunt ophalen.

Het serverprogramma uitvoeren

Voer de volgende opdrachten uit in een nieuwe opdrachtshell.

Onbewerkte verbindingsreeks worden alleen in dit artikel weergegeven voor demonstratiedoeleinden. Beveilig uw toegangssleutels altijd in productieomgevingen. Gebruik Azure Key Vault om uw sleutels veilig te beheren en te roteren en uw verbinding te beveiligen.WebPubSubServiceClient

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

node publish.js "Hello World"

Bekijk de ontvangen berichten aan de clientzijde

GIF van het demonstreren van een app-server die gegevens pusht naar de verbonden client.

Probeer hetzelfde 'abonneren'-programma uit te voeren in meerdere opdrachtshells om meer dan clients te stimuleren. Zodra het 'publiceren'-programma wordt uitgevoerd, ziet u dat berichten in realtime worden bezorgd bij al deze clients.

Samenvatting

In deze quickstart ziet u hoe eenvoudig het is om berichten van een toepassingsserver naar alle verbonden clients in een hub te pushen. Daarnaast kunt u met Web PubSub berichten pushen naar

  • een subset van de clients in een hub
  • een bepaalde groep in een hub
  • een subset van clients in een groep

Deze API's maken een schat aan gebruiksvoorbeelden mogelijk, zodat ontwikkelaars zich kunnen richten op unieke bedrijfslogica, terwijl ze er zeker van zijn dat Web PubSub lage latentie biedt (<100 ms), hoge beschikbaarheid en enorme schaal (miljoen+ gelijktijdige verbindingen).

Volgende stappen

In de volgende stap verkennen we hoe u kunt werken met het gebeurtenissysteem van Web PubSub, dat nodig is om volledige webtoepassingen te bouwen.