Por que eu devo ler este artigo:Este artigo será útil para os desenvolvedores que desejam criar um aplicativo que necessite enviar e/ou receber informações em tempo real e de forma assíncrona, de uma forma simples e sem precisar ficar gerenciando e manipulando a conexão com o servidor. Para auxiliar no entendimento, será criado um aplicativo que simulará uma sala de bate papo. Com este exemplo você poderá testar na prática a comunicação entre dois ou mais dispositivos.

Quando se está trabalhando no desenvolvimento de um projeto, é muito comum surgirem demandas por novas funcionalidades em nosso dia a dia. E uma das funcionalidades que mais vêm sendo incorporada nos aplicativos é a comunicação e atualização de informações em tempo real. Muitas vezes precisamos que certas coisas funcionem de forma instantânea, assim que uma informação é alterada no servidor ela precisa ser notificada imediatamente no lado cliente (no nosso caso os aplicativos).

Em uma aplicação Android é comum ver desenvolvedores utilizarem Services que ficam a cada x segundos fazendo requisições ao servidor para verificar determinadas informações. Isso funciona, porém há um consumo desnecessário (recurso, bateria e pacote de dados) já que em muitas requisições nem sequer houve alteração da informação e com isso não há necessidade de realizar nenhuma ação no aplicativo.

Há também a possibilidade de utilizar o Push Notifications que funciona bem, mas seu uso dependerá da necessidade, pois ele possui algumas limitações como o tamanho da mensagem, a garantia de entrega e ordem das mensagens que muitas vezes não podem ser desconsideradas. Seria muito preocupante se em um aplicativo como o de chat, por exemplo, algumas mensagens não chegassem ou então chegassem fora de ordem.

Neste contexto, o SignalR é uma biblioteca que foi desenvolvida por funcionários da Microsoft que permite adicionar a funcionalidade de comunicação em tempo real de forma muito simples e prática nas aplicações. Através dela podemos facilmente fazer com que uma aplicação no servidor envie informações no exato momento para os usuários que estão conectados.

Não vamos nos aprofundar e falar detalhadamente sobre o SignalR, mas é recomendado que você pesquise mais sobre o assunto e na internet há diversos sites que abordam o tema. Desde o surgimento, o SignalR passou a ser muito utilizado e se popularizou bastante especialmente em aplicações .NET, mas para utilizá-lo no Android geralmente era necessário recorrer a bibliotecas de terceiros pois sua implementação era muito trabalhosa.

Porém, em março de 2014 foi anunciado que a Microsoft disponibilizou um SDK para os desenvolvedores Java/Android e isso ajudou (e muito) para que pudéssemos aproveitar toda a facilidade que o SignalR nos traz, aliando às necessidades de nossos aplicativos.

Projeto de exemplo

Um dos exemplos mais clássicos para demonstrar a utilização do SignalR é o chat, pois através dele podemos abordar os conceitos de uma forma simples e interativa. Portanto, vamos criar um aplicativo que funcionará como uma sala de bate papo, onde o usuário deverá informar o seu apelido na primeira tela e na segunda tela poderá trocar mensagens com os outros usuários que estiverem conectados.

O nosso aplicativo será o lado cliente. Isso significa que precisaremos antes criar um projeto que fará o lado servidor. Sendo assim, vamos dividir o nosso exemplo em duas etapas: Projeto Web e Projeto Android.

Criando o projeto Web

Este projeto será responsável por receber as requisições enviadas pelo aplicativo que serão: Entrar no chat, Enviar mensagem e Sair do chat. A cada chamada a um desses métodos, será enviada uma notificação a todos os usuários conectados informando a ação efetuada pelo usuário que fez a chamada.

Para começar, crie um novo projeto ASP.NET MVC no Visual Studio conforme mostram as Figuras 1 e 2.

Nota
O projeto utilizado neste artigo foi criado no Visual Studio 2012, porém, você também pode criá-lo ut ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo