TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)
-
Upload
jhony-almeida -
Category
Technology
-
view
149 -
download
0
description
Transcript of TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)
![Page 1: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/1.jpg)
ATUALIZAÇÕES SEM F5 (OU CMD+R) COM WEBSOCKETS
Gabriel Schade Cardoso Jhony Luiz de Almeida
![Page 3: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/3.jpg)
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…
![Page 4: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/4.jpg)
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
![Page 5: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/5.jpg)
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
![Page 6: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/6.jpg)
POLLING / LONG POLLING
![Page 7: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/7.jpg)
A SOLUÇÃO
WebSockets!
![Page 8: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/8.jpg)
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)
![Page 9: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/9.jpg)
WEBSOCKETS
![Page 10: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/10.jpg)
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
![Page 11: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/11.jpg)
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
![Page 12: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/12.jpg)
DEMO !
FONTES: HTTPS://GITHUB.COM/WJHONY/PROGRAMADORPOLIGLOTA/TREE/MASTER/TRONWEBSOCKET!HTTPS://GITHUB.COM/GABRIELSCHADE/BLOG/TREE/MASTER/WINDOWS%20PHONE/CSHARP
![Page 13: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)](https://reader034.fdocumentos.com/reader034/viewer/2022052622/558e69351a28ab0f668b4598/html5/thumbnails/13.jpg)
OBRIGADO! !
Gabriel Schade Cardoso /gabrielschade Jhony Luiz de Almeida [email protected]
!
Visite: programadorpoliglota.com.br