Biblioteca cliente de middleware del servicio Azure Web PubSub para .NET: versión 1.2.0
El servicio Azure Web PubSub es un servicio que permite crear aplicaciones web de mensajería en tiempo real mediante WebSockets y el patrón publish-subscribe. Cualquier plataforma compatible con las API de WebSocket puede conectarse fácilmente al servicio, por ejemplo, páginas web, aplicaciones móviles, dispositivos perimetrales, etc. El servicio administra automáticamente las conexiones de WebSocket y permite hasta 100 000 conexiones simultáneas . Proporciona API eficaces para administrar estos clientes y entregar mensajes en tiempo real.
Cualquier escenario que requiera mensajería de publicación y suscripción en tiempo real entre el servidor y los clientes o entre clientes, puede usar el servicio Azure Web PubSub. Las características tradicionales en tiempo real que a menudo requieren tener que sondear desde el servidor o enviar solicitudes HTTP, también pueden usar el servicio Azure Web PubSub.
Esta biblioteca se puede utilizar para las siguientes acciones. (Los detalles sobre los términos usados aquí se describen en la sección Conceptos clave):
- Análisis de solicitudes ascendentes en CloudNative CloudEvents
- Adición de opciones de validación para la solicitud ascendente
- API para agregar funcionalidad definida por el usuario para controlar diferentes eventos ascendentes
Código | fuentePaquete | Documentación | de referencia de APIDocumentación | del productoMuestras |
Introducción
Instalar el paquete
Instalación de la biblioteca cliente desde NuGet
dotnet add package Microsoft.Azure.WebPubSub.AspNetCore
Requisitos previos
- Una suscripción de Azure.
- Una instancia existente del servicio Azure Web PubSub.
Autenticar el cliente
Para interactuar con el servicio, deberá proporcionar al servicio Web PubSub una credencial válida. Para que esto sea posible, necesitará la cadena de conexión o una clave, a las que puede acceder en Azure Portal. Además, si desea invocar la API REST del servicio, puede llamar a AddWebPubSubServiceClient<THub>()
donde THub
se implementa WebPubSubHub
el usuario escuchando eventos importantes.
Configuración de las opciones del servicio Web PubSub
public void ConfigureServices(IServiceCollection services)
{
services.AddWebPubSub(o =>
{
o.ServiceEndpoint = new("<connection-string>");
}).AddWebPubSubServiceClient<SampleHub>();
}
Asignación WebPubSubHub
al enrutamiento de puntos de conexión
public void Configure(IApplicationBuilder app)
{
app.UseEndpoints(endpoint =>
{
endpoint.MapWebPubSubHub<SampleHub>("/eventhandler");
});
}
Conceptos clave
Para más información sobre los conceptos generales de Web PubSub en Azure Web PubSub
WebPubSubHub
WebPubSubHub
es una clase abstracta para permitir que los usuarios implementen los eventos de servicio Web PubSub suscritos. Después de que el usuario registre el controlador de eventos en el lado del servicio, estos eventos se reenviarán desde el servicio al servidor. Además WebPubSubHub
, proporciona 4 métodos que se asignan a los eventos de servicio para permitir a los usuarios tratar estos eventos, por ejemplo, administración de clientes, validaciones o trabajar con Azure.Messaging.WebPubSub
para difundir los mensajes. Consulte los ejemplos siguientes para obtener más información.
NOTA
Entre los 4 métodos,
OnConnectAsync()
yOnMessageReceivedAsync()
están bloqueando eventos que el servicio respetará las devoluciones del servidor. Además de la respuesta correcta asignada, el servidor puede producir excepciones siempre que la solicitud se encuentre en la lógica del lado servidor. YUnauthorizedAccessException
se convertirá401Unauthorized
en y el resto se convertirá en500InternalServerError
junto con el mensaje de excepción para devolver el servicio. A continuación, el servicio quitará la conexión de cliente actual.
Ejemplos
Controlar el evento ascendente 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);
}
}
Solución de problemas
Configuración del registro de la consola
También puede habilitar el registro de la consola fácilmente si desea profundizar más en las solicitudes que realiza en el servicio.
Pasos siguientes
Eche un vistazo al directorio Ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.
Contribuciones
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más información, visite https://cla.microsoft.com..
Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.
Azure SDK for .NET