Inicio rápido: Difusión de mensajes en tiempo real desde la aplicación de consola

El servicio Azure SignalR proporciona la API de REST para admitir el servidor para escenarios de comunicación del cliente, como la difusión. Puede elegir cualquier lenguaje de programación que puede llamar a la API de REST. Puede publicar mensajes en todos los clientes conectados, en un cliente específico por el nombre o en un grupo de clientes.

En esta guía de inicio rápido, obtendrá información sobre cómo enviar mensajes desde una aplicación de línea de comandos a las aplicaciones cliente conectadas en C#.

Prerrequisitos

Esta guía de inicio rápido se puede ejecutar en macOS, Windows o Linux.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Inicio de sesión en Azure

Inicie sesión en Azure Portal en https://portal.azure.com/ con su cuenta de Azure.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Creación de una instancia del servicio Azure SignalR

La aplicación se conectará a una instancia del servicio SignalR en Azure.

  1. Seleccione el botón Nuevo de la esquina superior izquierda en Azure Portal. En la pantalla Nuevo, escriba SignalR Service (Servicio SignalR) en el cuadro de búsqueda y presione Entrar.

    Captura de pantalla que muestra la búsqueda de SignalR Service en Azure Portal.

  2. Seleccione SignalR Service (Servicio SignalR) en los resultados de la búsqueda y, a continuación, seleccione Crear.

  3. Escriba la siguiente configuración.

    Configuración Valor sugerido Descripción
    Nombre del recurso Nombre único globalmente Nombre que identifica la nueva instancia del servicio SignalR. Los caracteres válidos son a-z, 0-9 y -.
    Suscripción Su suscripción Suscripción en que se creará esta nueva instancia del servicio SignalR.
    Grupo de recursos myResourceGroup Nombre del nuevo grupo de recursos en el que se va a crear la instancia del servicio SignalR.
    Ubicación Oeste de EE. UU. Seleccione una región cerca de usted.
    Plan de tarifa Gratuito Pruebe el servicio Azure SignalR de forma gratuita.
    Recuento de unidades No aplicable El recuento de unidades especifica cuántas conexiones puede aceptar la instancia del servicio SignalR. Solo es configurable en el nivel Estándar.
    Modo de servicio Sin servidor Para su uso con Azure Functions o la API REST.

    Captura de pantalla que muestra la pestaña Aspectos básicos de SignaIR con valores.

  4. Seleccione Crear para empezar a implementar la instancia del servicio SignalR.

  5. Una vez implementada la instancia, ábrala en el portal y busque su página de configuración. Cambie la configuración del modo de servicio Sin servidor solo si usa Azure SignalR Service a través del enlace de Azure Functions o la API de REST. Déjelo en Clásico o Predeterminado en caso contrario.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Clonación de la aplicación de ejemplo

Mientras se implementa el servicio, pasaremos a preparar el código. Clone la aplicación de ejemplo de GitHub, establezca la cadena de conexión del servicio SignalR y ejecute la aplicación de forma local.

  1. Abra una ventana de terminal de GIT. Cambie a la carpeta donde quiere clonar el proyecto de ejemplo.

  2. Ejecute el comando siguiente para clonar el repositorio de ejemplo. Este comando crea una copia de la aplicación de ejemplo en el equipo.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Compilación y ejecución del ejemplo

Este ejemplo es una aplicación de consola que muestra el uso del servicio Azure SignalR. Proporciona dos modos:

  • Modo de servidor: use comandos simples para llamar a la API de REST del servicio Azure SignalR.
  • Modo de cliente: conéctese al servicio Azure SignalR y reciba mensajes del servidor.

También puede obtener información acerca de cómo generar un token de acceso para autenticarse con el servicio Azure SignalR.

Compilación del archivo ejecutable

Se usa macOS osx.10.13-x64 como ejemplo. Puede encontrar una referencia sobre cómo compilar en otras plataformas.

cd AzureSignalR-samples/samples/Serverless/

dotnet publish -c Release -r osx.10.13-x64

Inicio de un cliente

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>

Inicio de un servidor

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless server -c "<ConnectionString>" -h <HubName>

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Ejecución del ejemplo sin publicar

También puede ejecutar el comando siguiente para iniciar un servidor o cliente.

# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>

# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>

Uso de los secretos de usuario para especificar la cadena de conexión

Puede ejecutar dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" en el directorio raíz del ejemplo. Después de eso, ya no necesitará la opción -c "<ConnectionString>".

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Uso

Una vez iniciado el servidor, use el comando para enviar el mensaje:

send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast

Puede iniciar a varios clientes con nombres de cliente diferentes.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Integración con servicios de terceros

El servicio Azure SignalR permite a los servicios de terceros la integración con el sistema.

Definición de las especificaciones técnicas

En la siguiente tabla se muestran todas las versiones de las API REST admitidas hasta la fecha. También hay un archivo de definición disponible para cada versión

Versión Estado de la API Puerta Específico
1.0-preview Disponible 5002 Swagger
1.0 Disponible Estándar Swagger

La lista de las API disponibles para cada versión específica está disponible en la siguiente lista.

API 1.0-preview 1.0
Difusión a todos
Difusión a un grupo
Difusión a varios grupos (en desuso) N / A
Envío a un usuario
Envío a algunos usuarios (en desuso) N / A
Incorporación de un usuario a un grupo N / A
Eliminación de un usuario de un grupo N / A
Comprobación de la existencia del usuario N / A
Eliminación de un usuario de todos los grupos N / A
Envío de una conexión N / A
Adición de una conexión a un grupo N / A
Eliminación de una conexión de un grupo N / A
Cierre de una conexión de cliente N / A
Service Health N / A

Difusión a todos

Versión Método HTTP de API URL de la solicitud Cuerpo de la solicitud
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> Lo mismo que antes.

Difusión a un grupo

Versión Método HTTP de API URL de la solicitud Cuerpo de la solicitud
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> Lo mismo que antes.

Envío a un usuario

Versión Método HTTP de API URL de la solicitud Cuerpo de la solicitud
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> Lo mismo que antes.

Incorporación de un usuario a un grupo

Versión Método HTTP de API URL de la solicitud
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Eliminación de un usuario de un grupo

Versión Método HTTP de API URL de la solicitud
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Comprobación de la existencia de usuarios en un grupo

Versión de API Método HTTP de API URL de la solicitud
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name>
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>
Código de estado de respuesta Descripción
200 El usuario existe
404 El usuario no existe

Eliminación de un usuario de todos los grupos

Versión de API Método HTTP de API URL de la solicitud
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups

Envío de un mensaje a una conexión

Versión de API Método HTTP de API URL de la solicitud Cuerpo de la solicitud
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> { "target":"<method-name>", "arguments":[ ... ] }

Adición de una conexión a un grupo

Versión de API Método HTTP de API URL de la solicitud
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Eliminación de una conexión de un grupo

Versión de API Método HTTP de API URL de la solicitud
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Cierre de una conexión de cliente

Versión de API Método HTTP de API URL de la solicitud
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason>

Service Health

Versión de API Método HTTP de API URL de la solicitud
1.0 GET https://<instance-name>.service.signalr.net/api/v1/health
Código de estado de respuesta Descripción
200 Servicio en buen estado
5xx Error del servicio

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Limpieza de recursos

Si no va a seguir usando esta aplicación, siga estos pasos para eliminar todos los recursos creados en esta guía de inicio rápido a fin de que no se le apliquen cargos adicionales:

  1. En Azure Portal, seleccione Grupos de recursos en el extremo izquierdo y luego seleccione el grupo de recursos que creó. Además, puede usar el cuadro de búsqueda para buscar el grupo de recursos por su nombre.

  2. En la ventana que se abrirá, seleccione el grupo de recursos y luego haga clic en Eliminar grupo de recursos.

  3. En la nueva ventana escriba el nombre del grupo de recursos que quiere eliminar y, después, haga clic en Eliminar.

¿Tiene problemas? Consulte la guía de solución de problemas o póngase en contacto con nosotros.

Pasos siguientes

En este inicio rápido, aprendió a usar la API de REST para difundir mensajes en tiempo real de SignalR Service a los clientes. A continuación, obtendrá información sobre cómo desarrollar e implementar Azure Functions con enlaces de SignalR Service, que se basa en la API de REST.