Základní koncepty Azure Web PubSub
Služba Azure Web PubSub pomáhá vytvářet webové aplikace pro zasílání zpráv v reálném čase. Klienti se ke službě připojují pomocí standardního protokolu WebSocket a služba zveřejňuje rozhraní REST API a sady SDK pro správu těchto klientů.
Termíny
Tady jsou některé důležité termíny používané službou:
Připojení: Připojení, označované také jako klient nebo připojení klienta, je to logický vztah mezi klientem a službou Web PubSub. Prostřednictvím "připojení" se klient a služba zapojují do řady stavových interakcí. Připojení používající různé protokoly se můžou chovat odlišně, například některá připojení jsou omezená na dobu trvání síťového připojení, zatímco jiné můžou přesahovat více po sobě jdoucích síťových připojení mezi klientem a službou.
Centrum: Centrum je logický koncept sady klientských připojení. Obvykle používáte jedno centrum pro jeden scénář, například centrum chatu nebo centrum oznámení . Když se připojení klienta připojí, připojí se k centru a během jeho životnosti patří do tohoto centra. Jakmile se připojení klienta k centru připojí, centrum existuje. Různé aplikace můžou sdílet jednu službu Azure Web PubSub pomocí různých názvů center. I když neexistuje žádný striktní limit počtu rozbočovačů, centrum využívá oproti skupině větší zatížení služby. Doporučujeme mít předem určenou sadu rozbočovačů, a negenerovat je dynamicky.
Skupina: Skupina je podmnožinou připojení k centru. Ke skupině můžete přidat připojení klienta nebo ho z této skupiny kdykoli odebrat. Když se například klient připojí k chatovací místnosti nebo když klient opustí chatovací místnost, může být tato chatovací místnost považována za skupinu. Klient se může připojit k více skupinám a skupina může obsahovat více klientů. Skupina se podobá skupině "session", relace skupiny se vytvoří, jakmile se někdo připojí ke skupině, a relace zmizí, když nikdo není ve skupině. Zprávy odeslané skupině se doručí všem klientům připojeným ke skupině.
Uživatel: Připojení k podsítě Web PubSub mohou patřit jednomu uživateli. Uživatel může mít více připojení, například když je jeden uživatel připojený na více zařízeních nebo na několika kartách prohlížeče.
Zpráva: Když je klient připojen, může odesílat zprávy do upstreamové aplikace nebo přijímat zprávy z upstreamové aplikace prostřednictvím připojení WebSocket. Zprávy můžou být ve formátu prostého textu, binárního formátu nebo formátu JSON a mají maximální velikost 1 MB.
Události klienta: Události se vytvářejí během životního cyklu připojení klienta. Například jednoduché připojení klienta WebSocket vytvoří
connect
událost, když se pokusí připojit ke službě,connected
událost, když se úspěšně připojila ke službě,message
událost, když odesílá zprávy do služby adisconnected
událost, když se odpojí od služby. Podrobnosti o událostech klienta jsou znázorněny v části Protokol klienta.Obslužná rutina události: Obslužná rutina události obsahuje logiku pro zpracování událostí klienta. Zaregistrujte a nakonfigurujte obslužné rutiny událostí ve službě prostřednictvím portálu nebo Azure CLI předem. Podrobnosti jsou popsány v části obslužné rutiny události.
Naslouchací proces událostí(Preview): Naslouchací proces událostí pouze naslouchá událostem klienta, ale nemůže ovlivňovat dobu života vašich klientů prostřednictvím jejich odpovědi. Podrobnosti jsou popsány v části Naslouchací proces událostí.
Server: Server může zpracovávat události klienta, spravovat připojení klientů nebo publikovat zprávy do skupin. Obslužná rutina události i naslouchací proces událostí se považují za serverovou stranu. Podrobnosti o serveru jsou popsány v části Protokol serveru .
Důležité
Hub
, Group
UserId
jsou důležité role při správě klientů a odesílání zpráv. Budou vyžadovány parametry v různých voláních rozhraní REST API jako prostý text. Proto do těchto polí nevkládejte citlivé informace. Například přihlašovací údaje nebo nosné tokeny, které budou mít vysoké riziko úniku.
Workflow
Typický pracovní postup, který službu používá, je znázorněný níže:
Jak je znázorněno výše uvedeným grafem pracovního postupu:
Klient se připojí k centru ve službě pomocí přenosu WebSocket. Služba může zprávy předávat nakonfigurovaným upstreamům (serveru) nebo zpracovávat zprávy samostatně a umožnit klientům provádět pub/sub přímo v závislosti na protokolu, který klient používá. Podrobnosti jsou popsány v klientských protokolech.
Služba vyvolá server pomocí protokolu CloudEvents pro různé události klienta. CloudEvents je standardizovaná a protokolově nezávislá definice struktury a metadat popis událostí hostovaných platformou CNCF (Cloud Native Computing Foundation). Podrobnosti jsou popsány v protokolu serveru.
Server může vyvolat službu pomocí rozhraní REST API k odesílání zpráv klientům nebo ke správě připojených klientů. Podrobnosti jsou popsány v protokolu serveru.