13
ATUALIZAÇÕES SEM F5 (OU CMD+R) COM WEBSOCKETS Gabriel Schade Cardoso Jhony Luiz de Almeida

TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)

Embed Size (px)

DESCRIPTION

Apresentação da palestra no TDC 2014 - Florianópolis sobre WebSockets, com demonstração prática implementada nas plataformas Java, JavaScript e Windows Phone.

Citation preview

Page 1: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)

ATUALIZAÇÕES SEM F5 (OU CMD+R) COM WEBSOCKETS

Gabriel Schade Cardoso Jhony Luiz de Almeida

Page 2: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)

OS PALESTRANTES

http://programadorpoliglota.com.br

Page 3: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)

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)

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)

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)

POLLING / LONG POLLING

Page 7: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)

A SOLUÇÃO

WebSockets!

Page 8: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)

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)

WEBSOCKETS

Page 10: TDC 2014 - Atualizações sem F5 com WebSockets (Jhony, Gabriel Schade)

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)

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)

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)

OBRIGADO! !

Gabriel Schade Cardoso /gabrielschade Jhony Luiz de Almeida [email protected]

!

Visite: programadorpoliglota.com.br