Compartir a través de


Biblioteca cliente de Web PubSub de Azure WebJobs para .NET: versión 1.7.0

Esta extensión proporciona funcionalidad para recibir llamadas de webhook de Web PubSub en Azure Functions, lo que le permite escribir fácilmente funciones que responden a cualquier evento publicado en Web PubSub.

Código fuente | Paquete | Documentación de referencia de API | Documentación del producto | Ejemplos

Introducción

Instalar el paquete

Instale la extensión Web PubSub con NuGet:

dotnet add package Microsoft.Azure.WebJobs.Extensions.WebPubSub

Requisitos previos

Debe tener una suscripción de Azure y un grupo de recursos de Azure con un recurso de Web PubSub. Siga este tutorial paso a paso para crear una instancia de Azure Web PubSub.

Autenticar el cliente

Para permitir que la extensión funcione con el servicio Azure Web PubSub, deberá proporcionar un valor válido ConnectionString.

Puede encontrar las claves del servicio Azure Web PubSub en Azure Portal.

La AzureWebJobsStorage cadena de conexión se usa para conservar la información del punto de control de procesamiento según sea necesario, consulte Consideraciones de almacenamiento.

Para el desarrollo local, use el local.settings.json archivo para almacenar la cadena de conexión, <connection-string> se puede establecer WebPubSubConnectionString en como valor predeterminado admitido en la extensión, o puede establecer nombres personalizados asignandolos con Connection = <connection-string> en atributos de enlace de función:

{
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "<connection-string>": "Endpoint=https://<webpubsub-name>.webpubsub.azure.com;AccessKey=<access-key>;Version=1.0;"
  }
}

Cuando se implementa, use la configuración de la aplicación para establecer la cadena de conexión.

Conceptos clave

Uso del enlace de entrada de Web PubSub

Siga el tutorial de enlace de entrada para obtener información sobre el uso de esta extensión para crear WebPubSubConnection una conexión de Websockets al servicio con enlace de entrada.

Uso del enlace de salida de Web PubSub

Siga el tutorial de enlace de salida para obtener información sobre el uso de esta extensión para publicar mensajes de Web PubSub.

Uso del desencadenador web PubSub

Siga el tutorial de enlace de desencadenador para obtener información sobre cómo desencadenar una función de Azure cuando se envía un evento desde el servicio ascendente.

En Connect los eventos y UserEvent , la función respetará los valores devueltos para devolver el servicio. A continuación, el servicio dependerá de la respuesta para continuar la solicitud o de lo contrario. Las respuestas y eventos se emparejan. Por ejemplo, Connect solo respetará ConnectEventResponse o EventErrorResponsey omitirá otras devoluciones. Cuando EventErrorResponse se devuelve , el servicio quitará la conexión de cliente. Siga el tutorial del valor devuelto del enlace de desencadenador para obtener información sobre cómo usar el valor devuelto del desencadenador.

Ejemplos

Funciones que usan el enlace de entrada de Web PubSub

public static class WebPubSubConnectionBindingFunction
{
    [FunctionName("WebPubSubConnectionBindingFunction")]
    public static WebPubSubConnection Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req,
        [WebPubSubConnection(Hub = "hub", UserId = "{query.userid}", Connection = "<connection-string>")] WebPubSubConnection connection)
    {
        Console.WriteLine("login");
        return connection;
    }
}

Funciones que usan el enlace de salida de Web PubSub

public static class WebPubSubOutputBindingFunction
{
    [FunctionName("WebPubSubOutputBindingFunction")]
    public static async Task RunAsync(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req,
        [WebPubSub(Hub = "hub", Connection = "<connection-string>")] IAsyncCollector<WebPubSubAction> action)
    {
        await action.AddAsync(WebPubSubAction.CreateSendToAllAction("Hello Web PubSub!", WebPubSubDataType.Text));
    }
}

Funciones que usan el desencadenador Web PubSub

public static class WebPubSubTriggerFunction
{
    [FunctionName("WebPubSubTriggerFunction")]
    public static void Run(
        ILogger logger,
        [WebPubSubTrigger("hub", WebPubSubEventType.User, "message")] UserEventRequest request,
        string data,
        WebPubSubDataType dataType)
    {
        logger.LogInformation("Request from: {user}, data: {data}, dataType: {dataType}",
            request.ConnectionContext.UserId, data, dataType);
    }
}

Funciones que usan el valor devuelto del desencadenador Web PubSub

public static class WebPubSubTriggerReturnValueFunction
{
    [FunctionName("WebPubSubTriggerReturnValueFunction")]
    public static UserEventResponse Run(
        [WebPubSubTrigger("hub", WebPubSubEventType.User, "message")] UserEventRequest request)
    {
        return request.CreateResponse(BinaryData.FromString("ack"), WebPubSubDataType.Text);
    }
}

Solución de problemas

Consulte Monitor Azure Functions para obtener instrucciones de solución de problemas.

Pasos siguientes

Lea la introducción a La función de Azure o cree una guía de funciones de Azure.

Contribuciones

Consulte nuestra CONTRIBUTING.md para obtener más información sobre la compilación, las pruebas y la contribución a esta biblioteca.

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 cla.microsoft.com.

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