Comunicação
Eficiente com WebSocket
Quero construir uma aplicação de chat

Chat com Ajax
- Enviar mensagem
- Servidor recebe e trata mensagem
- Servidor envia para gravar no banco
- Retorna resposta de sucesso
- E ...
Um sistema Ajax

Request HTTP
Response
Database
Servidor





Request HTTP
Response




Client A
Client B
Um sistema Ajax

Request HTTP
Response
Database
Servidor





Request HTTP
Response





Como emitir eventos que permitam o monitoramento das mensagens !?
Client A
Client B
Problemas com AJax
- Preciso ficar enviando requisições o tempo todo
- Performance ruim causado pelo primeiro problema
Imagina uma aplicação do tamanho do facebook
Web Socket
Web Socket
WebSocket é um protocolo de comunicação, que permite uma comunicação do tipo bidirecional através de canais de comunicação full-duplex em uma única conexão TCP.
O protocolo WebSocket foi padronizado pelo IETF como RFC 6455 em 2011, e a API WebSocket está sendo padronizada pelo W3C.
https://pt.wikipedia.org/wiki/WebSocket
Curiosidade antes de seguir ...
- Full Duplex
- TCP
- IETF como RFC 6455
- W3C

Existem diversos tipos de comunicação e uma coisa que as vezes a galera confunde é quando falamos de broadcast, bidirecional e websocket
Arquitetura

Servidor



Emitir evento
Emitir evento
Emitir evento

Canais de comunicação mantidos abertos pelo Web Socket
Mão na massa
- Subir um servidor com protocolo WS atrelado a uma porta qualquer utilizando NodeJS
- Conectar ao servidor com API WebSocket
Para aprender mais ...


Web Socket
By Henrique Matos
Web Socket
- 106