Cuándo usar ASP.NET Core SignalR

Completado

SignalR proporciona funcionalidad web en tiempo real. Recuerde que Contoso Pizza requiere un mapa en directo para realizar el seguimiento del estado y la entrega de pedidos. La pérdida de ventas durante las horas punta está llevando al equipo a investigar una solución mejor que el sondeo del lado cliente.

Criterios de decisión

Saber cuándo no elegir SignalR es tan importante como saber cuándo elegirlo. Con la funcionalidad web en tiempo real, la experiencia de los usuarios de una aplicación se basa en su capacidad de respuesta. Es mejor comprender qué partes de una aplicación requieren actualizaciones en tiempo real.

Cuándo no usar SignalR

SignalR es tan duradero como su conexión subyacente. Es decir, si hay motivo para preocuparse por la conectividad de una aplicación cliente, SignalR no es la mejor opción.

Otra consideración es la escalabilidad de SignalR. Según el número de clientes conectados simultáneamente, el servidor web podría experimentar contención de recursos al alcanzar sus límites. En situaciones como esta, es probable que deba implementar la aplicación en una granja de servidores y usar un backplane. Implementar esto por su cuenta puede ser tedioso.

Como alternativa, podría resolver este problema mediante Azure SignalR Service. O bien, puede ayudar a mitigarlo aprovechando diversos mecanismos de resistencia y recuperación ante desastres.

Modalidades de SignalR de ejemplo

Puede usar SignalR localmente, en la nube o con Azure SignalR Service.

  • Localmente:

    Diagrama de ASP.NET Core SignalR que se usa de forma local.

  • En la nube:

    Diagrama de ASP.NET Core SignalR que se usa en la nube.

  • Con Azure SignalR Service:

    Diagrama del uso de Azure SignalR Service.

Casos de uso válidos

SignalR no sustituye a las solicitudes HTTP tradicionales. Las aplicaciones podrían usar SignalR para saber cuándo realizar solicitudes HTTP específicas. De esta manera, se complementan entre sí.

Hay muchos casos de uso válidos para SignalR. En la lista siguiente, se enumeran buenos candidatos para SignalR:

  • Aplicaciones que requieren actualizaciones de alta frecuencia del servidor:
    • Juegos
    • Redes sociales
    • Voting (Votación)
    • Subastas
    • Aplicaciones de GPS
  • Paneles y aplicaciones de supervisión:
    • Paneles de empresa
    • Mapas en directo
    • Actualizaciones de ventas instantáneas
    • Alertas de viajes
    • Páginas de canalización de integración continua y entrega continua (CI/CD)
  • Aplicaciones interactivas de colaboración y de varios usuarios:
    • Aplicaciones de Whiteboard
    • Aplicaciones de reuniones en equipo
    • Aplicaciones de uso compartido de documentos
    • Visual Studio Live Share
  • Aplicaciones que requieren notificaciones instantáneas:
    • Aplicaciones de correo electrónico
    • Aplicaciones de chat
    • Juegos basados en turnos
    • Informes de serie temporal
    • Acciones de GitHub, sistemas de solicitud de incorporación de cambios y problemas

Escenario de Contoso Pizza

Si está pensando en una solución de sondeo del lado cliente en el mapa de pedidos en directo de Contoso Pizza, SignalR podría ser una alternativa viable. Al igual que con todas las decisiones de programación y arquitectura, es fundamental sopesar las ventajas y desventajas de SignalR.