Enlaces de SignalR Service para Azure FunctionsSignalR Service bindings for Azure Functions

En este artículo se explica cómo autenticar y enviar mensajes en tiempo real a los clientes conectados a Azure SignalR Service mediante enlaces de SignalR Service en Azure Functions.This article explains how to authenticate and send real-time messages to clients connected to Azure SignalR Service by using SignalR Service bindings in Azure Functions. Azure Functions admite enlaces de entrada y salida para SignalR Service.Azure Functions supports input and output bindings for SignalR Service.

Esta es la información de referencia para desarrolladores de Azure Functions.This is reference information for Azure Functions developers. Si está familiarizado con Azure Functions, comience con los siguientes recursos:If you're new to Azure Functions, start with the following resources:

Paquetes: Functions 2.xPackages - Functions 2.x

Los enlaces de SignalR Service se proporcionan en el Microsoft.Azure.WebJobs.Extensions.SignalRService paquete de NuGet, versión 1.*.The SignalR Service bindings are provided in the Microsoft.Azure.WebJobs.Extensions.SignalRService NuGet package, version 1.*. El código fuente del paquete está en el repositorio de GitHub azure-functions-signalrservice-extension.Source code for the package is in the azure-functions-signalrservice-extension GitHub repository.

En la siguiente tabla se explica cómo agregar compatibilidad para este enlace en cada entorno de desarrollo.The following table tells how to add support for this binding in each development environment.

Entorno de desarrolloDevelopment environment Para agregar compatibilidad enTo add support in
Functions 2.xFunctions 2.x
Desarrollo local: biblioteca de clases C#Local development - C# class library Instalación del paqueteInstall the package
Desarrollo local: script de C#, JavaScript, F#Local development - C# script, JavaScript, F# Registro de la extensiónRegister the extension
Desarrollo con PortalPortal development Registro de la extensiónRegister the extension

Para saber cómo actualizar las extensiones de enlace existentes en el portal sin tener que volver a publicar su proyecto de aplicación de función, consulte Actualización de las extensiones.To learn how to update existing binding extensions in the portal without having to republish your function app project, see Update your extensions.

Anotaciones de JavaJava annotations

Para utilizar las anotaciones de SignalR Service en las funciones de Java, deberá agregar una dependencia a la azure funciones java biblioteca signalr artefactos (versión 1.0 o superior) en pom.xml.To use the SignalR Service annotations in Java functions, you need to add a dependency to the azure-functions-java-library-signalr artifact (version 1.0 or higher) to your pom.xml.

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-signalr</artifactId>
    <version>1.0.0</version>
</dependency>

Nota

Para utilizar los enlaces de SignalR Service en Java, asegúrese de que usa la versión 2.4.419 o posterior de Azure Functions Core Tools (versión de host 2.0.12332).To use the SignalR Service bindings in Java, make sure you are using version 2.4.419 or higher of the Azure Functions Core Tools (host version 2.0.12332).

Usar SignalR Service con Azure FunctionsUsing SignalR Service with Azure Functions

Para obtener más información sobre cómo configurar y usar SignalR Service y Azure Functions juntos, consulte configuración con Azure SignalR Service y desarrollo de Azure Functions.For details on how to configure and use SignalR Service and Azure Functions together, refer to Azure Functions development and configuration with Azure SignalR Service.

Enlace de entrada de información de conexión de SignalRSignalR connection info input binding

Para que un cliente pueda conectarse a Azure SignalR Service, antes debe recuperar la dirección URL del punto de conexión del servicio y un token de acceso válido.Before a client can connect to Azure SignalR Service, it must retrieve the service endpoint URL and a valid access token. El enlace de entrada SignalRConnectionInfo genera la dirección URL del punto de conexión de SignalR Service y un token válido que se usan para conectarse al servicio.The SignalRConnectionInfo input binding produces the SignalR Service endpoint URL and a valid token that are used to connect to the service. Dado que el token tiene una temporal y que se puede usar para autenticar un usuario concreto en una conexión, no debe almacenarlo en la caché ni compartirlo con los clientes.Because the token is time-limited and can be used to authenticate a specific user to a connection, you should not cache the token or share it between clients. Los clientes pueden usar un desencadenador HTTP que use este enlace para recuperar la información de conexión.An HTTP trigger using this binding can be used by clients to retrieve the connection information.

Vea el ejemplo específico del lenguaje:See the language-specific example:

Para obtener más información sobre cómo se utiliza este enlace para crear una función "negotiate" que puede consumir un SDK de cliente de SignalR, consulte el artículo de desarrollo y la configuración de Azure Functions en los conceptos de SignalR Service documentación.For more information on how this binding is used to create a "negotiate" function that can be consumed by a SignalR client SDK, see the Azure Functions development and configuration article in the SignalR Service concepts documentation.

2.x C# ejemplos de entrada2.x C# input examples

En el siguiente ejemplo se muestra una función de C# que adquiere la información de la conexión de SignalR mediante el enlace de entrada y la devuelve a través de HTTP.The following example shows a C# function that acquires SignalR connection information using the input binding and returns it over HTTP.

[FunctionName("negotiate")]
public static SignalRConnectionInfo Negotiate(
    [HttpTrigger(AuthorizationLevel.Anonymous)]HttpRequest req,
    [SignalRConnectionInfo(HubName = "chat")]SignalRConnectionInfo connectionInfo)
{
    return connectionInfo;
}

Tokens autenticadosAuthenticated tokens

Si la función la desencadena un cliente autenticado, puede agregar una notificación del identificador de usuario al token generado.If the function is triggered by an authenticated client, you can add a user ID claim to the generated token. Puede agregar fácilmente la autenticación a una aplicación de función mediante autenticación de App Service.You can easily add authentication to a function app using App Service Authentication.

Autenticación de App Service establece encabezados HTTP denominados x-ms-client-principal-id y x-ms-client-principal-name que contienen el identificador y el nombre de la entidad de seguridad de cliente del usuario autenticado, respectivamente.App Service Authentication sets HTTP headers named x-ms-client-principal-id and x-ms-client-principal-name that contain the authenticated user's client principal ID and name, respectively. Puede establecer la propiedad UserId del enlace en el valor de cualquier encabezado mediante una expresión de enlace: {headers.x-ms-client-principal-id} o {headers.x-ms-client-principal-name}.You can set the UserId property of the binding to the value from either header using a binding expression: {headers.x-ms-client-principal-id} or {headers.x-ms-client-principal-name}.

[FunctionName("negotiate")]
public static SignalRConnectionInfo Negotiate(
    [HttpTrigger(AuthorizationLevel.Anonymous)]HttpRequest req, 
    [SignalRConnectionInfo
        (HubName = "chat", UserId = "{headers.x-ms-client-principal-id}")]
        SignalRConnectionInfo connectionInfo)
{
    // connectionInfo contains an access key token with a name identifier claim set to the authenticated user
    return connectionInfo;
}

ejemplos de entrada de JavaScript de 2.x2.x JavaScript input examples

En el ejemplo siguiente se muestra un enlace de entrada de la información de la conexión de SignalR en un archivo function.json y una función de JavaScript que usa el enlace para devolver la información de la conexión.The following example shows a SignalR connection info input binding in a function.json file and a JavaScript function that uses the binding to return the connection information.

Estos son los datos de enlace del archivo function.json:Here's binding data in the function.json file:

Function.json de ejemplo:Example function.json:

{
    "type": "signalRConnectionInfo",
    "name": "connectionInfo",
    "hubName": "chat",
    "connectionStringSetting": "<name of setting containing SignalR Service connection string>",
    "direction": "in"
}

Este es el código de JavaScript:Here's the JavaScript code:

module.exports = async function (context, req, connectionInfo) {
    context.res.body = connectionInfo;
};

Tokens autenticadosAuthenticated tokens

Si la función la desencadena un cliente autenticado, puede agregar una notificación del identificador de usuario al token generado.If the function is triggered by an authenticated client, you can add a user ID claim to the generated token. Puede agregar fácilmente la autenticación a una aplicación de función mediante autenticación de App Service.You can easily add authentication to a function app using App Service Authentication.

Autenticación de App Service establece encabezados HTTP denominados x-ms-client-principal-id y x-ms-client-principal-name que contienen el identificador y el nombre de la entidad de seguridad de cliente del usuario autenticado, respectivamente.App Service Authentication sets HTTP headers named x-ms-client-principal-id and x-ms-client-principal-name that contain the authenticated user's client principal ID and name, respectively. Puede establecer la propiedad userId del enlace en el valor de cualquier encabezado mediante una expresión de enlace: {headers.x-ms-client-principal-id} o {headers.x-ms-client-principal-name}.You can set the userId property of the binding to the value from either header using a binding expression: {headers.x-ms-client-principal-id} or {headers.x-ms-client-principal-name}.

Function.json de ejemplo:Example function.json:

{
    "type": "signalRConnectionInfo",
    "name": "connectionInfo",
    "hubName": "chat",
    "userId": "{headers.x-ms-client-principal-id}",
    "connectionStringSetting": "<name of setting containing SignalR Service connection string>",
    "direction": "in"
}

Este es el código de JavaScript:Here's the JavaScript code:

module.exports = async function (context, req, connectionInfo) {
    // connectionInfo contains an access key token with a name identifier
    // claim set to the authenticated user
    context.res.body = connectionInfo;
};

ejemplos de entrada de Java de 2.x2.x Java input examples

El ejemplo siguiente se muestra un función Java que adquiere la información de conexión de SignalR con el enlace de entrada y lo devuelve a través de HTTP.The following example shows a Java function that acquires SignalR connection information using the input binding and returns it over HTTP.

@FunctionName("negotiate")
public SignalRConnectionInfo negotiate(
        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.POST },
            authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> req,
        @SignalRConnectionInfoInput(
            name = "connectionInfo",
            hubName = "chat") SignalRConnectionInfo connectionInfo) {
    return connectionInfo;
}

Tokens autenticadosAuthenticated tokens

Si la función la desencadena un cliente autenticado, puede agregar una notificación del identificador de usuario al token generado.If the function is triggered by an authenticated client, you can add a user ID claim to the generated token. Puede agregar fácilmente la autenticación a una aplicación de función mediante autenticación de App Service.You can easily add authentication to a function app using App Service Authentication.

Autenticación de App Service establece encabezados HTTP denominados x-ms-client-principal-id y x-ms-client-principal-name que contienen el identificador y el nombre de la entidad de seguridad de cliente del usuario autenticado, respectivamente.App Service Authentication sets HTTP headers named x-ms-client-principal-id and x-ms-client-principal-name that contain the authenticated user's client principal ID and name, respectively. Puede establecer la propiedad UserId del enlace en el valor de cualquier encabezado mediante una expresión de enlace: {headers.x-ms-client-principal-id} o {headers.x-ms-client-principal-name}.You can set the UserId property of the binding to the value from either header using a binding expression: {headers.x-ms-client-principal-id} or {headers.x-ms-client-principal-name}.

@FunctionName("negotiate")
public SignalRConnectionInfo negotiate(
        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.POST },
            authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> req,
        @SignalRConnectionInfoInput(
            name = "connectionInfo",
            hubName = "chat",
            userId = "{headers.x-ms-client-principal-id}") SignalRConnectionInfo connectionInfo) {
    return connectionInfo;
}

Enlace de salida de SignalRSignalR output binding

Use el enlace de la salida de SignalR para enviar uno o varios mensajes mediante Azure SignalR Service.Use the SignalR output binding to send one or more messages using Azure SignalR Service. Puede difundir un mensaje a todos los clientes conectados, o bien puede difundirlo solo a los clientes conectados que se han autenticado en un usuario dado.You can broadcast a message to all connected clients, or you can broadcast it only to connected clients that have been authenticated to a given user.

También puede usarlo para administrar los grupos a los que pertenece un usuario.You can also use it to manage the groups that a user belongs to.

Vea el ejemplo específico del lenguaje:See the language-specific example:

2.x C# enviar ejemplos de mensajes de salida2.x C# send message output examples

Difusión a todos los clientesBroadcast to all clients

En el siguiente ejemplo se muestra una función de C# que envía un mensaje mediante el enlace de salida a todos los clientes conectados.The following example shows a C# function that sends a message using the output binding to all connected clients. Target es el nombre del método que se va a invocar en cada cliente.The Target is the name of the method to be invoked on each client. La propiedad Arguments es una matriz de cero o más objetos que se pasarán al método del cliente.The Arguments property is an array of zero or more objects to be passed to the client method.

[FunctionName("SendMessage")]
public static Task SendMessage(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message, 
    [SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{
    return signalRMessages.AddAsync(
        new SignalRMessage 
        {
            Target = "newMessage", 
            Arguments = new [] { message } 
        });
}

Envío a un usuarioSend to a user

Solo se pueden enviar mensajes a las conexiones que se hayan autenticado en un usuario estableciendo la propiedad UserId del mensaje de SignalR.You can send a message only to connections that have been authenticated to a user by setting the UserId property of the SignalR message.

[FunctionName("SendMessage")]
public static Task SendMessage(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message, 
    [SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{
    return signalRMessages.AddAsync(
        new SignalRMessage 
        {
            // the message will only be sent to this user ID
            UserId = "userId1",
            Target = "newMessage",
            Arguments = new [] { message }
        });
}

Enviar a un grupoSend to a group

Puede enviar un mensaje sólo a las conexiones que se han agregado a un grupo mediante el establecimiento del GroupName propiedad del mensaje de SignalR.You can send a message only to connections that have been added to a group by setting the GroupName property of the SignalR message.

[FunctionName("SendMessage")]
public static Task SendMessage(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post")]object message,
    [SignalR(HubName = "chat")]IAsyncCollector<SignalRMessage> signalRMessages)
{
    return signalRMessages.AddAsync(
        new SignalRMessage
        {
            // the message will be sent to the group with this name
            GroupName = "myGroup",
            Target = "newMessage",
            Arguments = new [] { message }
        });
}

2.x C# ejemplos del resultado de administración de grupos2.x C# group management output examples

SignalR Service permite a los usuarios pueden agregarse a grupos.SignalR Service allows users to be added to groups. A continuación, se pueden enviar mensajes a un grupo.Messages can then be sent to a group. Puede usar el SignalRGroupAction clase con el SignalR enlace para administrar la pertenencia a grupos de un usuario de salida.You can use the SignalRGroupAction class with the SignalR output binding to manage a user's group membership.

Agregar usuario a un grupoAdd user to a group

El ejemplo siguiente agrega un usuario a un grupo.The following example adds a user to a group.

[FunctionName("addToGroup")]
public static Task AddToGroup(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post")]HttpRequest req,
    string userId,
    [SignalR(HubName = "chat")]
        IAsyncCollector<SignalRGroupAction> signalRGroupActions)
{
    return signalRGroupActions.AddAsync(
        new SignalRGroupAction
        {
            UserId = userId,
            GroupName = "myGroup",
            Action = GroupAction.Add
        });
}

Quitar usuario de un grupoRemove user from a group

El ejemplo siguiente quita un usuario de un grupo.The following example removes a user from a group.

[FunctionName("removeFromGroup")]
public static Task RemoveFromGroup(
    [HttpTrigger(AuthorizationLevel.Anonymous, "post")]HttpRequest req,
    string userId,
    [SignalR(HubName = "chat")]
        IAsyncCollector<SignalRGroupAction> signalRGroupActions)
{
    return signalRGroupActions.AddAsync(
        new SignalRGroupAction
        {
            UserId = userId,
            GroupName = "myGroup",
            Action = GroupAction.Remove
        });
}

ejemplos del resultado de mensaje de envío de JavaScript de 2.x2.x JavaScript send message output examples

Difusión a todos los clientesBroadcast to all clients

En el ejemplo siguiente se muestra un enlace de salida de SignalR en un archivo function.json y una función de JavaScript que usa el enlace para enviar in mensaje con Azure SignalR Service.The following example shows a SignalR output binding in a function.json file and a JavaScript function that uses the binding to send a message with Azure SignalR Service. Establezca el enlace de salida en una matriz de uno o varios mensajes de SignalR.Set the output binding to an array of one or more SignalR messages. Un mensaje de SignalR consta de una propiedad target que especifica el nombre del método que se invoca en cada cliente y una propiedad arguments que es una matriz de objetos que se usan en el método del cliente como argumentos.A SignalR message consists of a target property that specifies the name of the method to invoke on each client, and an arguments property that is an array of objects to pass to the client method as arguments.

Estos son los datos de enlace del archivo function.json:Here's binding data in the function.json file:

Function.json de ejemplo:Example function.json:

{
  "type": "signalR",
  "name": "signalRMessages",
  "hubName": "<hub_name>",
  "connectionStringSetting": "<name of setting containing SignalR Service connection string>",
  "direction": "out"
}

Este es el código de JavaScript:Here's the JavaScript code:

module.exports = async function (context, req) {
    context.bindings.signalRMessages = [{
        "target": "newMessage",
        "arguments": [ req.body ]
    }];
};

Envío a un usuarioSend to a user

Solo se pueden enviar mensajes a las conexiones que se hayan autenticado en un usuario estableciendo la propiedad userId del mensaje de SignalR.You can send a message only to connections that have been authenticated to a user by setting the userId property of the SignalR message.

function.json no cambia.function.json stays the same. Este es el código de JavaScript:Here's the JavaScript code:

module.exports = async function (context, req) {
    context.bindings.signalRMessages = [{
        // message will only be sent to this user ID
        "userId": "userId1",
        "target": "newMessage",
        "arguments": [ req.body ]
    }];
};

Enviar a un grupoSend to a group

Puede enviar un mensaje sólo a las conexiones que se han agregado a un grupo mediante el establecimiento del groupName propiedad del mensaje de SignalR.You can send a message only to connections that have been added to a group by setting the groupName property of the SignalR message.

function.json no cambia.function.json stays the same. Este es el código de JavaScript:Here's the JavaScript code:

module.exports = async function (context, req) {
    context.bindings.signalRMessages = [{
        // message will only be sent to this group
        "groupName": "myGroup",
        "target": "newMessage",
        "arguments": [ req.body ]
    }];
};

ejemplos del resultado de 2.x de administración de grupos de JavaScript2.x JavaScript group management output examples

SignalR Service permite a los usuarios pueden agregarse a grupos.SignalR Service allows users to be added to groups. A continuación, se pueden enviar mensajes a un grupo.Messages can then be sent to a group. Puede usar el SignalR enlace para administrar la pertenencia a grupos de un usuario de salida.You can use the SignalR output binding to manage a user's group membership.

Agregar usuario a un grupoAdd user to a group

El ejemplo siguiente agrega un usuario a un grupo.The following example adds a user to a group.

function.jsonfunction.json

{
  "disabled": false,
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "signalR",
      "name": "signalRGroupActions",
      "connectionStringSetting": "<name of setting containing SignalR Service connection string>",
      "hubName": "chat",
      "direction": "out"
    }
  ]
}

index.jsindex.js

module.exports = async function (context, req) {
  context.bindings.signalRGroupActions = [{
    "userId": req.query.userId,
    "groupName": "myGroup",
    "action": "add"
  }];
};

Quitar usuario de un grupoRemove user from a group

El ejemplo siguiente quita un usuario de un grupo.The following example removes a user from a group.

function.jsonfunction.json

{
  "disabled": false,
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": [
        "post"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    },
    {
      "type": "signalR",
      "name": "signalRGroupActions",
      "connectionStringSetting": "<name of setting containing SignalR Service connection string>",
      "hubName": "chat",
      "direction": "out"
    }
  ]
}

index.jsindex.js

module.exports = async function (context, req) {
  context.bindings.signalRGroupActions = [{
    "userId": req.query.userId,
    "groupName": "myGroup",
    "action": "remove"
  }];
};

ejemplos del resultado de mensaje de envío de Java de 2.x2.x Java send message output examples

Difusión a todos los clientesBroadcast to all clients

El ejemplo siguiente se muestra un función Java que envía un mensaje utilizando el enlace de salida para todos los clientes conectados.The following example shows a Java function that sends a message using the output binding to all connected clients. target es el nombre del método que se va a invocar en cada cliente.The target is the name of the method to be invoked on each client. La propiedad arguments es una matriz de cero o más objetos que se pasarán al método del cliente.The arguments property is an array of zero or more objects to be passed to the client method.

@FunctionName("sendMessage")
@SignalROutput(name = "$return", hubName = "chat")
public SignalRMessage sendMessage(
        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.POST },
            authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Object> req) {

    SignalRMessage message = new SignalRMessage();
    message.target = "newMessage";
    message.arguments.add(req.getBody());
    return message;
}

Envío a un usuarioSend to a user

Solo se pueden enviar mensajes a las conexiones que se hayan autenticado en un usuario estableciendo la propiedad userId del mensaje de SignalR.You can send a message only to connections that have been authenticated to a user by setting the userId property of the SignalR message.

@FunctionName("sendMessage")
@SignalROutput(name = "$return", hubName = "chat")
public SignalRMessage sendMessage(
        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.POST },
            authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Object> req) {

    SignalRMessage message = new SignalRMessage();
    message.userId = "userId1";
    message.target = "newMessage";
    message.arguments.add(req.getBody());
    return message;
}

Enviar a un grupoSend to a group

Puede enviar un mensaje sólo a las conexiones que se han agregado a un grupo mediante el establecimiento del groupName propiedad del mensaje de SignalR.You can send a message only to connections that have been added to a group by setting the groupName property of the SignalR message.

@FunctionName("sendMessage")
@SignalROutput(name = "$return", hubName = "chat")
public SignalRMessage sendMessage(
        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.POST },
            authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Object> req) {

    SignalRMessage message = new SignalRMessage();
    message.groupName = "myGroup";
    message.target = "newMessage";
    message.arguments.add(req.getBody());
    return message;
}

ejemplos del resultado de 2.x de administración de grupos de Java2.x Java group management output examples

SignalR Service permite a los usuarios pueden agregarse a grupos.SignalR Service allows users to be added to groups. A continuación, se pueden enviar mensajes a un grupo.Messages can then be sent to a group. Puede usar el SignalRGroupAction clase con el SignalROutput enlace para administrar la pertenencia a grupos de un usuario de salida.You can use the SignalRGroupAction class with the SignalROutput output binding to manage a user's group membership.

Agregar usuario a un grupoAdd user to a group

El ejemplo siguiente agrega un usuario a un grupo.The following example adds a user to a group.

@FunctionName("addToGroup")
@SignalROutput(name = "$return", hubName = "chat")
public SignalRGroupAction addToGroup(
        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.POST },
            authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Object> req,
        @BindingName("userId") String userId) {

    SignalRGroupAction groupAction = new SignalRGroupAction();
    groupAction.action = "add";
    groupAction.userId = userId;
    groupAction.groupName = "myGroup";
    return action;
}

Quitar usuario de un grupoRemove user from a group

El ejemplo siguiente quita un usuario de un grupo.The following example removes a user from a group.

@FunctionName("removeFromGroup")
@SignalROutput(name = "$return", hubName = "chat")
public SignalRGroupAction removeFromGroup(
        @HttpTrigger(
            name = "req",
            methods = { HttpMethod.POST },
            authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Object> req,
        @BindingName("userId") String userId) {

    SignalRGroupAction groupAction = new SignalRGroupAction();
    groupAction.action = "remove";
    groupAction.userId = userId;
    groupAction.groupName = "myGroup";
    return action;
}

ConfiguraciónConfiguration

SignalRConnectionInfoSignalRConnectionInfo

En la siguiente tabla se explican las propiedades de configuración de enlace que se definen en el archivo function.json y el atributo SignalRConnectionInfo.The following table explains the binding configuration properties that you set in the function.json file and the SignalRConnectionInfo attribute.

Propiedad de function.jsonfunction.json property Propiedad de atributoAttribute property DESCRIPCIÓNDescription
typetype Se debe establecer en signalRConnectionInfo.Must be set to signalRConnectionInfo.
direccióndirection Se debe establecer en in.Must be set to in.
namename Nombre de la variable que se utiliza en el código de función para el objeto de información de conexión.Variable name used in function code for connection info object.
hubNamehubName HubNameHubName Este valor se debe establecer en el nombre del concentrador SignalR para el que se genera la información de conexión.This value must be set to the name of the SignalR hub for which the connection information is generated.
userIduserId UserIdUserId Opcional: Opcional: valor de la notificación del identificador de usuario que se va a establecer en el token de la clave de acceso.Optional: The value of the user identifier claim to be set in the access key token.
connectionStringSettingconnectionStringSetting ConnectionStringSettingConnectionStringSetting El nombre de la configuración de la aplicación que contiene la cadena de conexión de SignalR Service (el valor predeterminado es "AzureSignalRConnectionString")The name of the app setting that contains the SignalR Service connection string (defaults to "AzureSignalRConnectionString")

SignalRSignalR

En la siguiente tabla se explican las propiedades de configuración de enlace que se definen en el archivo function.json y el atributo SignalR.The following table explains the binding configuration properties that you set in the function.json file and the SignalR attribute.

Propiedad de function.jsonfunction.json property Propiedad de atributoAttribute property DESCRIPCIÓNDescription
typetype Se debe establecer en signalR.Must be set to signalR.
direccióndirection Se debe establecer en out.Must be set to out.
namename Nombre de la variable que se utiliza en el código de función para el objeto de información de conexión.Variable name used in function code for connection info object.
hubNamehubName HubNameHubName Este valor se debe establecer en el nombre del concentrador SignalR para el que se genera la información de conexión.This value must be set to the name of the SignalR hub for which the connection information is generated.
connectionStringSettingconnectionStringSetting ConnectionStringSettingConnectionStringSetting El nombre de la configuración de la aplicación que contiene la cadena de conexión de SignalR Service (el valor predeterminado es "AzureSignalRConnectionString")The name of the app setting that contains the SignalR Service connection string (defaults to "AzureSignalRConnectionString")

Cuando desarrolla localmente, la configuración de aplicación pasa al archivo local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Pasos siguientesNext steps