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