Biblioteca de clientes do middleware de serviço do Azure Web PubSub para .NET – versão 1.2.0
O Serviço Azure Web PubSub é um serviço que permite criar aplicativos Web de mensagens em tempo real usando WebSockets e o padrão publish-subscribe. Qualquer plataforma que dê suporte a APIs WebSocket pode se conectar facilmente ao serviço, por exemplo, páginas da Web, aplicativos móveis, dispositivos de borda etc. O serviço gerencia as conexões WebSocket para você e permite até 100 mil conexões simultâneas . Ele fornece APIs avançadas para que você gerencie esses clientes e forneça mensagens em tempo real.
Qualquer cenário que exija mensagens de publicação/assinatura em tempo real entre o servidor e os clientes ou entre clientes pode usar o serviço Azure Web PubSub. Os recursos tradicionais em tempo real que geralmente exigem a sondagem do servidor ou o envio de solicitações HTTP também podem usar o serviço Azure Web PubSub.
Essa biblioteca pode ser usada para executar as ações a seguir. Os detalhes sobre os termos usados aqui são descritos na seção Principais conceitos.
- Analisar solicitações de upstream em CloudEvents CloudNative
- Adicionar opções de validação para upstream solicitação
- API para adicionar funcionalidade definida pelo usuário para lidar com diferentes eventos de upstream
Código-fonte | Pacote | Documentação | de referência da APIDocumentação do produto | Amostras |
Introdução
Instalar o pacote
Instalar a biblioteca de clientes do NuGet
dotnet add package Microsoft.Azure.WebPubSub.AspNetCore
Pré-requisitos
- Uma assinatura do Azure.
- Uma instância de serviço do Azure Web PubSub existente.
Autenticar o cliente
Para interagir com o serviço, você precisará fornecer ao serviço Web PubSub uma credencial válida. Para tornar isso possível, você precisará da cadeia de conexão ou de uma chave, que pode ser acessada no portal do Azure. Além disso, se você quiser invocar a API REST de serviço, poderá chamar AddWebPubSubServiceClient<THub>()
onde THub
o usuário é implementado WebPubSubHub
escutando eventos importantes.
Configurar opções de serviço do Web PubSub
public void ConfigureServices(IServiceCollection services)
{
services.AddWebPubSub(o =>
{
o.ServiceEndpoint = new("<connection-string>");
}).AddWebPubSubServiceClient<SampleHub>();
}
Roteamento de mapa WebPubSubHub
para ponto de extremidade
public void Configure(IApplicationBuilder app)
{
app.UseEndpoints(endpoint =>
{
endpoint.MapWebPubSubHub<SampleHub>("/eventhandler");
});
}
Principais conceitos
Para obter informações sobre conceitos gerais do Web PubSub Conceitos no Azure Web PubSub
WebPubSubHub
WebPubSubHub
é uma classe abstrata para permitir que os usuários implementem os eventos de serviço Web PubSub inscritos. Depois que o usuário registrar o manipulador de eventos no lado do serviço, esses eventos serão encaminhados do serviço para o servidor. E WebPubSubHub
fornece quatro métodos de mapeamento para os eventos de serviço para permitir que os usuários lidem com esses eventos, por exemplo, gerenciamento de cliente, validações ou trabalho com Azure.Messaging.WebPubSub
o qual transmitir as mensagens. Confira os exemplos abaixo para obter detalhes.
OBSERVAÇÃO
Entre os quatro métodos,
OnConnectAsync()
eOnMessageReceivedAsync()
estão bloqueando eventos que o serviço respeitará os retornos do servidor. Além da resposta correta mapeada, o servidor pode gerar exceções sempre que a solicitação estiver na lógica do lado do servidor. EUnauthorizedAccessException
serão convertidos em401Unauthorized
e rest serão convertidos em juntamente com a500InternalServerError
mensagem de exceção para retornar o serviço. Em seguida, o serviço removerá a conexão atual do cliente.
Exemplos
Manipular evento de upstream Connect
private sealed class SampleHub : WebPubSubHub
{
internal WebPubSubServiceClient<SampleHub> _serviceClient;
// Need to ensure service client is injected by call `AddServiceHub<SampleHub>` in ConfigureServices.
public SampleHub(WebPubSubServiceClient<SampleHub> serviceClient)
{
_serviceClient = serviceClient;
}
public override ValueTask<ConnectEventResponse> OnConnectAsync(ConnectEventRequest request, CancellationToken cancellationToken)
{
var response = new ConnectEventResponse
{
UserId = request.ConnectionContext.UserId
};
return new ValueTask<ConnectEventResponse>(response);
}
}
Solução de problemas
Configuração do registro em log do console
Também é possível habilitar registro em log do console facilmente se quiser se aprofundar nas solicitações que está fazendo ao serviço.
Próximas etapas
Confira o diretório Exemplos para obter exemplos detalhados sobre como usar essa biblioteca.
Contribuição
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, acesse https://cla.microsoft.com.
Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.
Azure SDK for .NET