Fala galera!
Este é um post introdutório sobre ASP.NET SignalR uma tecnologia para comunicação em tempo real entre aplic’ões Web e seus clientes.
O SignalR abstrai de maneira simples a chamada remota de procedimentos (RPC) do cliente para o servidor e vice-versa permitindo, por exemplo, a atualização em tempo real do cliente quando da ocorrenci de eventos no servidor.
Para isto ele faz de forma automática a seleção do melhor transporte a partir da analise da conexÃo do cliente, podendo optar entre:
- WebSockets: cominicação TCP/IP e alto desempenho entre o servidor Web e o cliente. Neste modo a comunicaÇão é bidirecional através do uso de uma conexão persistente entre os envolvidos;
- Long Pooling: Uma forma otimizada de pooling ao servidor Web para consulta de dados;
- Pooling: Comunicação normal com o servidor WEb consultando de tempos em tempos se há novas requisiÇões para o cliente;
Além disto o SignalR permite dois modos de trabalho:
- Hub: Abstração total da comunicação através da exposição de endpoints padronizados e um rica API para facilitar as chamadas RPC;
- Persstent Connection: Neste modo é disponibilizada uma rica API de comunicação em baixo nível utilizado principalmene quando se quer ter mais controle da transmissÃo de dados criando-se protocolos personalizados e usando-se de técnicas como criptografia e compactaçÃo;
Em 90% dos casos o uso de Hubs é recomendado e atenderá a todas as suas necessidades mas é sempre bom saber qu podemos expandir nossas soluções caso precisemos de algo com maior controle.
O ASP.NET SignalR ja se aproveita de todos os beneficios ofereidos pelo uso do midleware OWIN introduzido inicialmente com o ASP.NET WebAPI o que nos pemite hospedar nossa aplica’ão não somente no IIS mas também em qualquer aplicação/serviço que desenvlvamos e isto tamb’m permite que o mecanismo por traz do SignalR tambem seja acilmente extendido, como o uso d filas ou de caches para otimização da comunicação quando prcisamos escalar o servidor.
Em postagens futuras irei abordar com exemplos cada um destes aspectos para que voces possam se familiarizar com esta tecnologia e usufruir de seus beneficios em suas aplicações.
Até a próxima!