ASP.NET SignalR

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!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s