Share via


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, representa uma conexão WebSocket individual conectada ao serviço Web PubSub. Quando conectado com êxito, um ID de conexão exclusivo é atribuído a essa conexão pelo serviço Web PubSub.

  • 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.

  • Client Connection e ConnectionId: Um cliente se conecta /client ao ponto de extremidade, quando conectado, um exclusivo connectionId é gerado pelo serviço como a identidade exclusiva da conexão do cliente. Os usuários podem gerenciar a conexão do cliente usando este connectionId. Os detalhes são descritos na seção Protocolo do cliente .

  • 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 evento quando tenta se conectar ao serviço, um evento quando se conecta com êxito ao serviço, um evento quando envia mensagens para o serviço e um connectconnectedmessagedisconnected 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, , GroupUserId 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:

Diagram showing the Web PubSub service workflow.

Conforme ilustrado pelo gráfico de fluxo de trabalho acima:

  1. Um cliente se conecta ao ponto de extremidade do serviço /client usando o transporte WebSocket. O serviço encaminha cada quadro WebSocket para o upstream (servidor) configurado. A conexão WebSocket pode se conectar com qualquer subprotocolo personalizado para o servidor manipular, ou pode se conectar com os subprotocolos suportados pelo serviço (por exemplo json.webpubsub.azure.v1) que permitem que os clientes façam pub/sub diretamente. Os detalhes são descritos em protocolos de cliente.

  2. 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.

  3. 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