Conheça a especificação WebSockets e suas possibilidades com Jean Carlo Emer
Na Webbr 2013, você poderá conferir a palestra de Jean Carlo Emer, consultant developer na Codeminer42, cientista da computação e aficionado por novas tecnologias e APIs. Em sua apresentação você irá aprender a usar WebSockets para adicionar comunicação bidirecional cliente-servidor de baixa latência a seu aplicativo Web.
Muita coisa dá para ser feita com essa tecnologia. Um chat em tempo real, aplicação lance a lance de uma partida de futebol e até um painel “real-time” que mostra quais usuários estão acessando o seu site naquele instante. Se você quer aprender mais sobre WebSockets, não deixe de conferir a sua palestra na Conferência. Veja abaixo a entrevista que fizemos com ele:
1) Quais são as principais vantagens ao se fazer uso da especificação WebSockets na comunicação bidirecional entre navegadores e servidores?
O protocolo HTTP é o que guia atualmente a comunicação entre navegadores e servidores nas principais aplicações de internet. A questão é que o protocolo HTTP exige que uma requisição seja disparada da parte do navegador para que então se possa ter uma mensagem de resposta do servidor. Desta maneira, assim que o servidor envia uma resposta, uma nova mensagem só pode ser enviada após uma nova requisição por parte do navegador.
Este modelo funciona muito bem para a maioria dos websites que conhecemos e estamos acostumados a acessar. Requisitamos por conteúdos como textos e imagens e os recebemos assim que possível levando-se em conta o tempo de latência da conexão e a velocidade de download. O funcionamento é relativamente simples.
O cenário começa a mudar a partir do momento em que o servidor não tem disponível toda a informação que possa nos interessar em um dado instante. Diversas técnicas tentam mitigar este problema. A mais simples consiste em o navegador disparar uma série de requisições com o intuito de verificar se o servidor possui uma nova informação disponível.
Fazendo o uso da tecnologia de Websockets, que é uma extensão do protocolo HTTP, um canal de comunicação é estabelecido entre navegador e servidor. Assim, a troca de mensagens não fica condicionada a uma requisição da parte do navegador. Em outra palavras, durante o período de conexão, o servidor pode enviar quaisquer mensagens diretamente para o navegador e vice-e-versa.
2) Como o Websockets pode ajudar na criação de jogos conectados (com multijogadores ou conectado a um servidor)?
Jogos multiplayer exigem uma quantidade enorme de troca de mensagens entre servidor e navegador para coordenar ações. Com o Websockets, esta troca de mensagens pode fluir de maneira livre e sem a necessidade do estabelecimento de diversas conexões.
No universo dos jogos em HTML5, Websockets são bastante significativos e necessários. Como exemplo, o Adobe Flash já possui uma implementação de Sockets – com a mesma utilidade dos Websockets – desde o Flash Player 9. Você já deve ter jogado em seu navegador com tecnologia de Sockets e nem ficou sabendo disso.
3) Quais são as principais dificuldades enfrentadas para o uso pleno do protocolo WebSockets pelos desenvolvedores web?
Aplicações que utilizam Websockets são mais complexas para se desenvolver exigindo um melhor entendimento e planejamento. Ainda, apesar de o protocolo ser suportado na maioria dos navegadores modernos, o Internet Explorer só o faz a partir da versão 10.
4) Que bibliotecas e ferramentas relevantes você recomenda para quem está implementando esta tecnologia?
Uma bliblioteca bastante conhecida é a Socket.io, que é normalmente utilizada em conjunto com Node.js. Seu funcionamento é baseado em entregar a melhor solução de conexão bidirecional possível respeitando as diferentes implementações de funcionalidades de cada navegador. Nestes casos, a primeira solução experimentada é a Websockets passando por técnicas de polling e até mesmo, caso seja configurada, fazendo uso de Flash Sockets.
Apesar de algumas linguagens que executam em servidor serem mais adequadas para aplicações que utilizam Websockets (Node.js, Elixir, entre outras) é possível encontrar ferramentas e bibliotecas para as mais diversas linguagens e necessidades.
5) Você pode citar alguns usos interessantes que podem ser ou já são feitos utilizando-se a API de WebSockets?
Sempre que penso em Websockets o exemplo que me vêm a mente é o de uma aplicação lance a lance de uma partida de futebol. Outro exemplo interessante são os websites que fazem cobertura ao vivo do lançamento de novos gadgets. Também o painel de “real-time” do Google Analytics, que mostra quais os usuários que acessam meu site naquele instante. Ferramentas de edição colaborativa, como Google Docs, além dos jogos, claro.
Comments are closed.