SignalR – A web em tempo real: Neste artigo veremos como realizar a troca de mensagens entre server/client para aplicações web em tempo real, ou seja, a viabilidade da troca de mensagens entre ambos os lados sem necessitar que os usuários da outra ponta recarreguem suas páginas para exibir o conteúdo, utilizando a biblioteca do SignalR. Além disso, abordaremos outros tópicos como os tipos de conexão existentes, gerenciamento da abertura e fechamento das conexões no servidor, formas para a troca de mensagens, integração com aplicações WindowsForms/ WindowsService e recursos adicionais da biblioteca.


Em que situação o tema é útil
: Aplicações em tempo real são úteis em situações onde seja necessária a transmissão de mensagens, alertas ou notificações para algum usuário que esteja conectado no sistema sem que seja necessário recarregar sua página no browser. Alguns exemplos de aplicações que utilizam notificações em tempo real são: redes sociais, chats, gerenciadores de e-mail e serviços de mensagens.

A cada dia, usuários buscam a forma mais simples e fácil para manter-se conectados com o mundo a sua volta. Redes-sociais, blogs, portais de notícias,celulares e tablets são apenas alguns dos meios para manter o usuário conectado com a outra ponta. Neste contexto, quanto mais rápido o usuário obtiver o que deseja, maior será sua satisfação com o serviço que disponibilizou a informação. Já repararam como as notificações do Gmail, são rápidas? Ao estar conectado a sua conta de e-mail a interação é praticamente instantânea, serviço de chat, mensagens, e-mail, contatos e agenda possuem um mecanismo para troca de informações em tempo real, ou seja, quando um novo e-mail chega ou quando outro contato fala através do chat, você é notificado sem que seja necessário recarregar a página.

Neste artigo demonstraremos a biblioteca do SignalR, realizando comparações com outras tecnologias que possuem o mesmo objetivo, configurando e gerenciando conexões, explicando os tipos de notificações existentes e integrando com aplicações desktop. Ao longo do artigo estaremos utilizando SignalR com ASP.NETMVC4 no Visual Studio 2012.

SignalR, o que é?

SignalR é uma biblioteca assíncrona voltada para aplicações .NET que foi criada com o intuito de ajudar a criar aplicações web interativas com troca de mensagens em tempo real para multiusuários. Até o momento, a biblioteca é open source e seu código fonte está disponível individualmente no GitHub (seção Links), sendo mantido por funcionários da Microsoft que participam do projeto ASP.NET e já possui uma evolução significante com suporte a Silverlight, WinRT, Javascript, .NET e WindowsPhone 7. Espera-se que futuramente torne-se um recurso nativo do ASP.NET, facilitando seu uso e instalação.

Para utilizá-lo,é necessário realizar a instalação de seu package pelo Nuget ou baixar o mesmo diretamente do repositório do projeto no GitHub.

Basicamente, o SignalR funciona através do gerenciamento de uma conexão persistente entre o servidor e o cliente.

Onde conseguir e como instalá-lo?

Atualmente o SignalR está na versão 0.5.3 e sua instalação é bem simples podendo ser realizada pelo próprio Nuget através do Package Manager Console com o comando Install-Package SignalR -Version 0.5.3. Observe que ao realizar a instalação as dependências necessárias também são atualizadas. Atente-se que é necessário no mínimo o jQuery 1.6 para sua utilização.

É recomendada a instalação do Json parser para possibilitar o envio de requisições sob XMLHttpRequest (Nota do DevMan 1) em navegadores que não o suportam, como o Internet Explorer 7. É possível instalá-lo pelo Package Manager Console com o comando Install-Package json2.

A instalação pode ser vista na Figura 1.

Instalação das bibliotecas

Figura 1. Instalação das bibliotecas

Nota do DevMan 1

XMLHttpRequest é uma API disponível para linguagens de scripts como, por exemplo, o JavaScript. Éutilizada para enviar requisições HTTP/HTTPS diretamente para um servidor webe carregar os dados de resposta ao script do cliente. Os dados podem ser recebidos do servidor através de Json, XML, HTML ou como texto puro.

SignalR e sua relação com WebSockets

A cada dia a integração entre aplicativos web/mobile como portais de informação e mídias sociais está maior. Por este motivo, há uma demanda grande do mercado por soluções e bibliotecas para a implementação deste tipo de comunicação pela Web. Por outro lado, para obtermos uma conexão sem latência, em tempo real entre server/client, precisamos ir um pouco além do protocolo HTTP, fazendo uso de WebSockets para isso. Ele fornece um protocolo que permite um aplicativo web permanecer conectado com um ponto de extremidade e, ao mesmo tempo, possibilita a comunicação bidirecional entre server/client.

...
Quer ler esse conteúdo completo? Tenha acesso completo