Aplicaciones en tiempo real con Azure SignalR Service y Azure Functions

Azure SignalR Services combinado con Azure Functions permite ejecutar aplicaciones web de mensajería en tiempo real en un entorno sin servidor. En este artículo se proporciona información general sobre cómo funcionan juntos los servicios.

Azure SignalR Service y Azure Functions son servicios totalmente administrados y altamente escalables que permiten centrarse en la creación de aplicaciones en lugar de administrar la infraestructura. Es habitual usar los dos servicios juntos para proporcionar comunicaciones en tiempo real en un entorno sin servidor.

Integrar las comunicaciones en tiempo real con los servicios de Azure

El servicio Azure Functions permite escribir código en varios lenguajes, como JavaScript, Python, C# y Java que se desencadena cada vez que se producen eventos en la nube. Los ejemplos de estos eventos incluyen:

  • Solicitudes de HTTP y webhook
  • Temporizadores periódicos
  • Eventos de servicios de Azure, como:
    • Event Grid
    • Event Hubs
    • Azure Service Bus
    • Fuente de cambios de Azure Cosmos DB
    • Blobs y colas de almacenamiento
    • Conectores de Logic Apps como Salesforce y SQL Server

Al usar Azure Functions para integrar estos eventos con Azure SignalR Service, tiene la capacidad de enviar notificaciones a miles de clientes cada vez que se produce cualquier evento.

Estos son algunos escenarios comunes de la mensajería sin servidor en tiempo real que puede implementar con Azure Functions y el servicio SignalR incluyen:

  • Visualizar la telemetría del dispositivo IoT en un panel o mapa en tiempo real.
  • Actualice los datos de una aplicación cuando los documentos se actualicen en Azure Cosmos DB.
  • Enviar notificaciones desde la aplicación cuando se crean nuevos pedidos en Salesforce.

Enlaces de SignalR Service para Azure Functions

Los enlaces de SignalR Service para Azure Functions permiten que una aplicación de Azure Functions publique mensajes en los clientes conectados a SignalR Service. Los clientes pueden conectarse al servicio mediante un SDK de cliente de SignalR que esté disponible en .NET, JavaScript y Java (tendrá más lenguajes disponibles en breve).

Un escenario de ejemplo

Un ejemplo de cómo utilizar los enlaces de SignalR Service, es usar Azure Functions para integrarlo con Azure Cosmos DB y SignalR Service y así enviar mensajes en tiempo real cuando aparezcan nuevos eventos en una fuente de cambios de Azure Cosmos DB.

Azure Cosmos DB, Azure Functions, SignalR Service

  1. Se realiza un cambio en una colección de Azure Cosmos DB.
  2. El evento de cambio se propaga a la fuente de cambios de Azure Cosmos DB.
  3. Azure Functions se desencadena mediante el evento de cambio mediante el desencadenador de Azure Cosmos DB.
  4. El enlace de salida de SignalR Service publica un mensaje en SignalR Service.
  5. SignalR Service publica el mensaje en todos los clientes conectados.

Autenticación y usuarios

SignalR Service permite difundir mensajes a todos o a un subconjunto de clientes, como los que pertenecen a un único usuario. Puede combinar los enlaces de SignalR Service para Azure Functions con la autenticación de App Service para autenticar a los usuarios con proveedores como Microsoft Entra ID, Facebook y Twitter. Entonces podrá enviar mensajes directamente a estos usuarios autenticados.

Pasos siguientes

Para más información sobre cómo usar Azure Functions y SignalR Service juntos, consulte los siguientes recursos:

Para probar los enlaces de SignalR Service para Azure Functions, consulte: