Post on 27-Jun-2015
description
ATUALIZAÇÕES SEM F5 (OU CMD+R) COM WEBSOCKETS
Gabriel Schade Cardoso Jhony Luiz de Almeida
A NECESSIDADE
• Atualizações de página em tempo real
• Páginas cujas informações tornam-se desatualizadas em questão de segundos
• Chats, notícias de última hora, bolsa de valores, lista de pedidos, rastreamento, jogos multiplayer…
O PROBLEMA
• HTTP não foi projetado para páginas dinâmicas
• Canal de comunicação é apenas half-duplex
• Servidor não pode enviar nada ao cliente sem que ele requisite
AS "SOLUÇÕES"
• Polling, long polling, streaming…
• Cliente faz contínuas requisições para o servidor solicitando atualizações
• Geração de tráfego de rede desnecessário, atualizações não ocorrem de fato em tempo real
POLLING / LONG POLLING
A SOLUÇÃO
WebSockets!
WEBSOCKET ?
• Protocolo full-duplex para troca de mensagens assíncronas
• Conexão é iniciada por HTTP com uma requisição de upgrade de protocolo (handshaking)
• APIs orientadas a eventos (conexão aberta/fechada, mensagem recebida)
WEBSOCKETS
WEBSOCKETS X SOCKETS• WebSockets trabalham com mensagens ao invés de
cadeias de bytes
• As mensagens sempre são entregues por inteiro, não existe segmentação
• Usa a mesma porta do HTTP
• Contorna obstáculos como proxies e firewalls
IMPLEMENTAÇÕES
• Servidor disponível em várias linguagens: Java, C#, Python, PHP (Ratchet), JavaScript (NodeJS), Ruby…
• Clientes de navegador possuem a API JavaScript nativa definida por especificação do HTML 5, além de versões de terceiros
DEMO !
FONTES: HTTPS://GITHUB.COM/WJHONY/PROGRAMADORPOLIGLOTA/TREE/MASTER/TRONWEBSOCKET!HTTPS://GITHUB.COM/GABRIELSCHADE/BLOG/TREE/MASTER/WINDOWS%20PHONE/CSHARP
OBRIGADO! !
Gabriel Schade Cardoso /gabrielschade Jhony Luiz de Almeida w.jhony@outlook.com
!
Visite: programadorpoliglota.com.br