Socket.io
FEATURING THE FASTEST AND MOST RELIABLE REAL-TIME ENGINE
Jonathan Sedrez
Frontend | ilegra
WebSockets
WebSockets
WebSockets é uma tecnologia que torna possível
abrir uma sessão de comunicação interativa
entre o navegador e um servidor.
Real-time - Bidirectional - Eventos
WebSockets
HTTP
WebSockets
WebSockets
websocket handshake
WebSockets
Comunicação baseada em eventos
WebSockets
Entre outros....
WebSockets
Vantagens
● Não sobrecarrega o servidor
● Fluidez na comunicação
● Pode ser utilizada na maioria das linguagens
Socket.io
Socket.io
O Socket.IO é uma biblioteca que permite a
comunicação em tempo real, bidirecional e
baseada em eventos entre o navegador e o
servidor.
Usa websockets como transporte.
Socket.io
Socket.io não é apenas uma
implementação de websockets...
WebSockets
Embora o Socket.IO realmente use o WebSocket
como transporte quando possível, ele adiciona
alguns metadados a cada pacote:
Tipo - Nome - identificação
Code
Code
Backend Frontend
npm install --save socket.io npm install --save socket.io-client
Code
Usando com Javascript
Client
Code
Usando com Express
Server
Server
Client
Conclusão
Obrigado!
JS > RUST

Socket.io

Notas do Editor

  • #4 Antes de falarmos propriamente de socet.io eu vou explicar m passo anterior que são os websockets. Ele faz parte das especificações do html 5 é suportado pelas ultimas versões dos navegadores
  • #5 O websocket e um protocolo que torna possivbel a comunicação bidirecional entre um navegador web e um servidor . Ele permite a criação d eum tunel para transportar de uma forma continua entre um savegador e um servidor.
  • #6 Para entendermos melhor vamos pomparalo com o medelo HTTP.
  • #7 O websocket veio para resolver esse problema de comunicação. Uma vez que utilizando uma vez que efetuamos uma comunicação, ela é continua.
  • #8 Apesar de ser muito poderoso, o conceito de sua arquitetura é bem simple. Ele se baseia em Evento sonde e o navegador e o servidor vao receber e emtir eventos um para o outro.
  • #10 utilizando o websockets nao estaremos sobrecarregando o servidor com requisições inuteis e que as informações fluem de forma mais rapida e continua, vale lembrar que atualmente websocket é suportado por diversas linguagens e ambiente.
  • #11 Agora então que ja sabemos o que é websocker vamos entrar na parte do socket.io
  • #12 biblioteca em node
  • #14  Embora o Socket.IO realmente use o WebSocket como transporte quando possível, ele adiciona alguns metadados a cada pacote: o tipo de pacote, o espaço para nome e a identificação do pacote quando uma confirmação de mensagem é necessária.
  • #17  Embora o Socket.IO realmente use o WebSocket como transporte quando possível, ele adiciona alguns metadados a cada pacote: o tipo de pacote, o espaço para nome e a identificação do pacote quando uma confirmação de mensagem é necessária.
  • #18  Embora o Socket.IO realmente use o WebSocket como transporte quando possível, ele adiciona alguns metadados a cada pacote: o tipo de pacote, o espaço para nome e a identificação do pacote quando uma confirmação de mensagem é necessária.
  • #19  Embora o Socket.IO realmente use o WebSocket como transporte quando possível, ele adiciona alguns metadados a cada pacote: o tipo de pacote, o espaço para nome e a identificação do pacote quando uma confirmação de mensagem é necessária.
  • #20  Embora o Socket.IO realmente use o WebSocket como transporte quando possível, ele adiciona alguns metadados a cada pacote: o tipo de pacote, o espaço para nome e a identificação do pacote quando uma confirmação de mensagem é necessária.
  • #21  Embora o Socket.IO realmente use o WebSocket como transporte quando possível, ele adiciona alguns metadados a cada pacote: o tipo de pacote, o espaço para nome e a identificação do pacote quando uma confirmação de mensagem é necessária.
  • #22 socket.io é uma ferramenta muito poderosa para resolver problemas de comunicação continua (chat, pooling, jogos). É importante saber o momento de utilizar e tambem o momento de NÂO utilizar. Utilizar socket.io;websocket pode em casos que não sejam esses podem afetar negativamente a performance e adicionando complexidade para o desenvolvedor.