Compartir a través de


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

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() y OnMessageReceivedAsync() 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. Y UnauthorizedAccessException se convertirá 401Unauthorized en y el resto se convertirá en 500InternalServerError 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.

Impresiones