COMUNICAÇÃO EM TEMPO REAL COM WEBSOCKETS

  • Diego Henrique da Rosa Vaz Unibrasil - Sistemas de Informação
  • Martin Jose Fagonde Morães Unibrasil - Sistemas de Informação
Palavras-chave: aplicação em tempo real, websockets, sockets para web

Resumo

Algo simples, mas que levou muito tempo para ganhar o mundo tornou a comunicação pela internet muito mais fluida. Nos últimos tempos, a demanda para aplicações em tempo real vem crescendo consideravelmente. Sites como Facebook e Twitter, jogos interativos, cotação de bolsa de valores, notificações de e-mail, chats, aplicações e-commerce, entre outros, são exemplos que utilizam a comunicação em tempo real. O problema a ser estudado é a utilização de uma nova técnica de comunicação em tempo real. Tendo por objetivo esclarecer o porquê da técnica websockets ser a melhor alternativa para tratar uma comunicação em tempo real. Uma aplicação em tempo real é na qual a informação é compartilhada em tempo real. Nesta aplicação, o servidor é capaz de sensibilizar/informar todos os clientes conectados assim que uma informação chega, sem precisar esperar que o cliente faça alguma requisição por estes dados. Uma das primeiras alternativas apontadas para tentar resolver o problema da comunicação em tempo real foi o Ajax Polling, em que requisições são enviadas do cliente para o servidor de tempos em tempos. Quando o servidor responde, a conexão é fechada. Esta alternativa traz diversas desvantagens, como a perda de atualizações (caso o tempo de atualização não seja suficientemente pequeno) e a sobrecarga de requisições no servidor, principalmente quando se diminui o tempo entre requisições em busca de uma atualização mais confiável. Além disso, mesmo quando o servidor não possui respostas relevantes, o cliente continua fazendo requisições, o que deixa a comunicação mais lenta. O Long Polling é outra tecnologia existente para suportar este tipo de comunicação. O cliente cria uma conexão com o servidor, que permanece aberta até que o servidor tenha uma nova atualização ou que o tempo da conexão expire. Em ambos os casos, o servidor responde ao cliente e ele, em seguida, faz uma nova requisição. Esta alternativa não tem atrasos, porém ainda existe a sobrecarga de requisições ao servidor. Finalmente, temos a técnica do Web Sockets, que é a melhor alternativa para tratar uma comunicação em tempo real. Uma conexão TCP é criada entre o cliente e o servidor e mantida enquanto necessário. A troca de mensagens é bidirecional, constante e rápida. O WebSocket é um protocolo full-duplex, escrito sobre TCP. Full-duplex é um tipo de comunicação no qual os dados podem trafegar em ambas as direções ao mesmo tempo. Antes do websockets o fluxo de informações na internet tinha um único e exclusivo sentido: Servidor/Cliente. WebSocket devolveu para as aplicações modernas algo que elas tinham perdido quando migradas do desktop para a plataforma web: atualizações realtime das telas. Aplicações em tempo real deixaram de ser algo complexo e se tornaram algo trivial, isso tudo graças ao websockets e a grande adoção do Javascript como linguagem universal.
Publicado
2018-02-27
Seção
Sistemas de Informação