Delen via


Basisconcepten van Azure Web PubSub

Met de Azure Web PubSub-service kunt u realtime webtoepassingen voor berichten bouwen. De clients maken verbinding met de service met behulp van het standaard WebSocket-protocol en de service maakt REST API's en SDK's beschikbaar voor het beheren van deze clients.

Voorwaarden

Hier volgen enkele belangrijke termen die door de service worden gebruikt:

  • Verbinding: Een verbinding, ook wel een client- of clientverbinding genoemd, is een logische relatie tussen een client en de Web PubSub-service. Via een 'verbinding' voeren de client en de service een reeks stateful interacties uit. Verbindingen die verschillende protocollen gebruiken, gedragen zich mogelijk anders, bijvoorbeeld een bepaalde verbinding is beperkt tot de duur van een netwerkverbinding, terwijl andere verbindingen kunnen worden uitgebreid tussen meerdere opeenvolgende netwerkverbindingen tussen een client en de service.

  • Hub: Een hub is een logisch concept voor een set clientverbindingen. Meestal gebruikt u één hub voor één scenario, bijvoorbeeld een chathub of een Notification Hub. Wanneer een clientverbinding verbinding maakt, maakt deze verbinding met een hub en gedurende de levensduur behoort deze tot die hub. Zodra een clientverbinding verbinding maakt met de hub, bestaat de hub. Verschillende toepassingen kunnen één Azure Web PubSub-service delen met behulp van verschillende hubnamen. Hoewel er geen strikte limiet is voor het aantal hubs, verbruikt een hub meer servicebelasting vergeleken met een groep. Het wordt aanbevolen om een vooraf bepaalde set hubs te hebben in plaats van ze dynamisch te genereren.

  • Groep: Een groep is een subset van verbindingen met de hub. U kunt een clientverbinding toevoegen aan een groep of de clientverbinding verwijderen uit de groep, op elk gewenst moment. Wanneer een client bijvoorbeeld deelneemt aan een chatruimte of wanneer een client de chatruimte verlaat, kan deze chatruimte worden beschouwd als een groep. Een client kan lid worden van meerdere groepen en een groep kan meerdere clients bevatten. De groep is net als een groep 'sessie', de groepssessie wordt gemaakt zodra iemand deelneemt aan de groep en de sessie is verdwenen wanneer niemand zich in de groep bevindt. Berichten die naar de groep worden verzonden, worden bezorgd bij alle clients die zijn verbonden met de groep.

  • Gebruiker: Verbindingen met Web PubSub kunnen tot één gebruiker behoren. Een gebruiker kan meerdere verbindingen hebben, bijvoorbeeld wanneer één gebruiker is verbonden op meerdere apparaten of meerdere browsertabbladen.

  • Bericht: Wanneer de client is verbonden, kan deze berichten verzenden naar de upstream-toepassing of berichten ontvangen van de upstream-toepassing via de WebSocket-verbinding. Berichten kunnen een tekst zonder opmaak, binaire of JSON-indeling hebben en een maximale grootte hebben van 1 MB.

  • Client gebeurtenissen: gebeurtenissen worden gemaakt tijdens de levenscyclus van een clientverbinding. Met een eenvoudige WebSocket-clientverbinding wordt bijvoorbeeld een connect gebeurtenis gemaakt wanneer wordt geprobeerd verbinding te maken met de service, een connected gebeurtenis wanneer deze verbinding heeft gemaakt met de service, een message gebeurtenis wanneer deze berichten naar de service verzendt in de standaardmodus sendEvent en een disconnected gebeurtenis wanneer de verbinding met de service wordt verbroken. Details over clientgebeurtenissen worden geïllustreerd in de sectie Clientprotocol .

  • Gebeurtenis-handler: de gebeurtenis-handler bevat de logica voor het afhandelen van de client gebeurtenissen. Registreer en configureer gebeurtenis-handlers in de service via de portal of Azure CLI vooraf. Details worden beschreven in de sectie Gebeurtenis-handler .

  • Gebeurtenislistener (preview): de gebeurtenislistener luistert alleen naar de clientevenementen, maar kan de levensduur van uw clients niet verstoren via hun reactie. Details worden beschreven in de sectie Gebeurtenislistener .

  • Server: De server kan client gebeurtenissen verwerken, clientverbindingen beheren of berichten publiceren naar groepen. Zowel gebeurtenis-handler als gebeurtenislistener worden beschouwd als serverzijde. Details over de server worden beschreven in de sectie Serverprotocol .

Belangrijk

HubUserId, Groupzijn belangrijke rollen wanneer u clients beheert en berichten verzendt. Ze zijn vereiste parameters in verschillende REST API-aanroepen als tekst zonder opmaak. Plaats dus geen gevoelige informatie in deze velden. Bijvoorbeeld referenties of bearer-tokens die een hoog lekrisico hebben.

Workflow

Hieronder ziet u een typische werkstroom met behulp van de service:

Diagram van de Web PubSub-servicewerkstroom.

Zoals geïllustreerd in de bovenstaande werkstroomgrafiek:

  1. Een client maakt verbinding met een hub in de service met behulp van WebSocket-transport. De service kan de berichten doorsturen naar de geconfigureerde upstream(server) of de berichten zelf verwerken en de clients toestaan pub/sub rechtstreeks uit te voeren, afhankelijk van het protocol dat de client gebruikt. Details worden beschreven in clientprotocollen.

  2. De service roept de server aan met behulp van het CloudEvents-protocol op verschillende clientevenementen. CloudEvents is een gestandaardiseerde en protocolagnostische definitie van de structuur en metagegevensbeschrijving van gebeurtenissen die worden gehost door de Cloud Native Computing Foundation (CNCF). Details worden beschreven in het serverprotocol.

  3. Server kan de service aanroepen met behulp van REST API om berichten naar clients te verzenden of om de verbonden clients te beheren. Details worden beschreven in serverprotocol