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.
- SDK de .NET Core
- El editor de texto o de código que elija.
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.
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.

Seleccione SignalR Service (Servicio SignalR) en los resultados de la búsqueda y, a continuación, seleccione Crear.
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-9y-.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. 
Seleccione Crear para empezar a implementar la instancia del servicio SignalR.
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.
Abra una ventana de terminal de GIT. Cambie a la carpeta donde quiere clonar el proyecto de ejemplo.
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:
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.
En la ventana que se abrirá, seleccione el grupo de recursos y luego haga clic en Eliminar grupo de recursos.
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.