Quando usar o ASP.NET Core SignalR
O SignalR fornece funcionalidade da Web em tempo real. A Contoso Pizza requer um mapa ao vivo para acompanhar o status e a entrega de pedidos. A perda de vendas durante o horário de pico está levando a equipe a investigar uma solução melhor do que a sondagem do lado do cliente.
Critérios de decisão
Saber quando não escolher o SignalR é tão importante quanto saber quando escolhê-lo. Com a funcionalidade da Web em tempo real, a experiência do usuário de um aplicativo depende da sua capacidade de reposta. É melhor entender quais partes de um aplicativo exigem atualizações em tempo real.
Quando não usar o SignalR
O SignalR só é durável como sua conexão subjacente. Isto é, se houver alguma preocupação com a conectividade de um aplicativo cliente, o SignalR não é a melhor opção.
Outra consideração é a escalabilidade do SignalR. Dependendo do número de clientes conectados simultaneamente, seu servidor Web poderá sofrer contenção de recursos ao atingir o limite. Em situações assim, provavelmente você precisará implantar o aplicativo em um farm de servidores e usar um backplane. Implementar isso por conta própria pode ser entediante.
Como alternativa, você pode resolver esse problema usando o Serviço do Azure SignalR. Ou você pode ajudar a aliviar isso aproveitando os vários mecanismos de resiliência e recuperação de desastre.
Exemplo de modalidades do SignalR
Você pode usar o SignalR localmente, na nuvem ou com o Serviço do Azure SignalR.
Casos de uso válidos
O SignalR não substitui as solicitações HTTP tradicionais. Os aplicativos podem usar o SignalR para saber quando fazer solicitações HTTP específicas. Dessa forma, eles se complementam.
Há muitos casos de uso válidos para o SignalR. A seguinte lista representa bons candidatos para o SignalR:
- Aplicativos que requerem uma alta frequência de atualizações do servidor:
- Jogos
- Redes Sociais
- Votação
- Leilões
- Aplicativos de GPS
- Painéis de controle e aplicativos de monitoramento:
- Painéis da empresa
- Mapas ao vivo
- Atualizações de ofertas instantâneas
- Alertas de viagem
- Páginas de pipeline de CI/CD (integração contínua/entrega contínua)
- Aplicativos interativos multiusuário e colaborativos:
- Aplicativos de Whiteboard
- Aplicativos de reunião de equipe
- Aplicativos de compartilhamento de documentos
- Visual Studio Live Share
- Aplicativos que exigem notificações instantâneas:
- Aplicativos de email
- Aplicativos de chat
- Jogos baseados em turnos
- Relatório de série temporal
- GitHub Actions, sistemas de solicitação de emissão e pull
Cenário da Contoso Pizza
Se você estiver considerando uma solução de sondagem do lado do cliente no mapa de pedidos ao vivo da Contoso Pizza, o SignalR pode ser uma alternativa viável. Assim como em todas as decisões de programação e arquitetura, é extremamente importante avaliar as vantagens e as desvantagens do SignalR.