Conceitos básicos do Azure Web PubSub
O serviço Azure Web PubSub ajuda-o a criar aplicações Web de mensagens em tempo real. Os clientes se conectam ao serviço usando o protocolo WebSocket padrão e o serviço expõe APIs REST e SDKs para você gerenciar esses clientes.
Termos
Aqui estão alguns termos importantes usados pelo serviço:
Conexão: uma conexão, também conhecida como uma conexão de cliente ou de cliente, é uma relação lógica entre um cliente e o serviço Web PubSub. Ao longo de uma "conexão", o cliente e o serviço se envolvem em uma série de interações com monitoração de estado. Conexões usando protocolos diferentes podem se comportar de forma diferente, por exemplo, algumas conexões são limitadas à duração de uma conexão de rede, enquanto outras podem se estender por várias conexões de rede sucessivas entre um cliente e o serviço.
Hub: Um hub é um conceito lógico para um conjunto de conexões de cliente. Normalmente, você usa um hub para um cenário, por exemplo, um hub de chat ou um hub de notificação . Quando uma conexão de cliente se conecta, ela se conecta a um hub e, durante sua vida útil, pertence a esse hub. Depois que uma conexão de cliente se conecta ao hub, o hub existe. Aplicativos diferentes podem compartilhar um serviço Azure Web PubSub usando nomes de hub diferentes. Embora não haja um limite estrito para o número de hubs, um hub consome mais carga de serviço em comparação com um grupo. Recomenda-se ter um conjunto predeterminado de hubs em vez de gerá-los dinamicamente.
Grupo: um grupo é um subconjunto de conexões com o hub. Você pode adicionar uma conexão de cliente a um grupo ou remover a conexão de cliente do grupo, sempre que quiser. Por exemplo, quando um cliente entra em uma sala de chat, ou quando um cliente sai da sala de chat, essa sala de chat pode ser considerada um grupo. Um cliente pode ingressar em vários grupos e um grupo pode conter vários clientes. O grupo é como uma "sessão" de grupo, a sessão de grupo é criada quando alguém se junta ao grupo, e a sessão desaparece quando ninguém está no grupo. As mensagens enviadas para o grupo são entregues a todos os clientes conectados ao grupo.
Usuário: As conexões com o Web PubSub podem pertencer a um usuário. Um usuário pode ter várias conexões, por exemplo, quando um único usuário está conectado em vários dispositivos ou várias guias do navegador.
Mensagem: Quando o cliente está conectado, ele pode enviar mensagens para o aplicativo upstream, ou receber mensagens do aplicativo upstream, através da conexão WebSocket. As mensagens podem ser em formato de texto simples, binário ou JSON e têm um tamanho máximo de 1 MB.
Eventos do cliente: os eventos são criados durante o ciclo de vida de uma conexão de cliente. Por exemplo, uma conexão de cliente WebSocket simples cria um
connect
evento quando tenta se conectar ao serviço, umconnected
evento quando se conecta com êxito ao serviço, ummessage
evento quando envia mensagens para o serviço e umdisconnected
evento quando se desconecta do serviço. Os detalhes sobre os eventos do cliente são ilustrados na seção Protocolo do cliente.Manipulador de eventos: O manipulador de eventos contém a lógica para manipular os eventos do cliente. Registre e configure manipuladores de eventos no serviço por meio do portal ou da CLI do Azure previamente. Os detalhes são descritos na seção Manipulador de eventos.
Ouvinte de eventos (visualização): o ouvinte de eventos apenas ouve os eventos do cliente, mas não pode interferir no tempo de vida dos seus clientes através da sua resposta. Os detalhes são descritos na seção Ouvinte de eventos.
Servidor: O servidor pode manipular eventos de cliente, gerenciar conexões de cliente ou publicar mensagens em grupos. Tanto o manipulador de eventos quanto o ouvinte de eventos são considerados do lado do servidor. Os detalhes sobre o servidor são descritos na seção Protocolo do servidor.
Importante
Hub
, Group
, UserId
são funções importantes quando você gerencia clientes e envia mensagens. Eles serão parâmetros necessários em diferentes chamadas de API REST como texto sem formatação. Portanto, NÃO coloque informações confidenciais nesses campos. Por exemplo, credenciais ou tokens ao portador que terão alto risco de vazamento.
Fluxo de Trabalho
Um fluxo de trabalho típico usando o serviço é mostrado abaixo:
Conforme ilustrado pelo gráfico de fluxo de trabalho acima:
Um cliente se conecta a um hub no serviço usando o transporte WebSocket. O serviço pode encaminhar as mensagens para o upstream (servidor) configurado, ou lidar com as mensagens por conta própria e permitir que os clientes façam pub/sub diretamente, dependendo do protocolo que o cliente usa. Os detalhes são descritos em protocolos de cliente.
O serviço invoca o servidor usando o protocolo CloudEvents em diferentes eventos de cliente. CloudEvents é uma definição padronizada e independente de protocolo da estrutura e descrição de metadados de eventos hospedados pela Cloud Native Computing Foundation (CNCF). Os detalhes são descritos no protocolo do servidor.
O servidor pode invocar o serviço usando a API REST para enviar mensagens aos clientes ou para gerenciar os clientes conectados. Os detalhes são descritos no protocolo do servidor