O que e WebSocket
WebSocket e um protocolo que permite comunicacao bidirecional em tempo real entre cliente e servidor. E usado em aplicacoes que exigem resposta imediata, como aplicativos de chat, jogos online e exibicao de cotacoes de acoes.
URLs WebSocket: Sao usados
ws://(nao criptografado) ewss://(criptografado com TLS).
Diferencas entre HTTP e WebSocket
| Caracteristica | HTTP | WebSocket |
|---|---|---|
| Direcao da comunicacao | Cliente → Servidor | Bidirecional |
| Conexao | Conecta/desconecta a cada requisicao | Persistente |
| Push do servidor | Impossivel | Possivel |
| Overhead | Envia cabecalhos HTTP toda vez | Apenas na primeira vez |
| Tempo real | Baixo | Alto |
Handshake do WebSocket
# Requisicao do cliente
GET /chat HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
# Resposta do servidor
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Exemplo de Implementacao JavaScript
const socket = new WebSocket('wss://example.com/chat');
socket.addEventListener('open', (event) => {
console.log('Conexao bem-sucedida');
socket.send('Hello Server!');
});
socket.addEventListener('message', (event) => {
console.log('Recebido:', event.data);
});
Socket.IO
Socket.IO e uma biblioteca de alta funcionalidade baseada em WebSocket.
- Fallback: Usa HTTP long polling quando WebSocket nao esta disponivel
- Reconexao automatica: Reconecta automaticamente quando desconectado
- Funcao de Room: Agrupa clientes
Resumo
WebSocket e um protocolo poderoso que permite comunicacao bidirecional em tempo real. E importante entender as diferencas de caracteristicas em relacao ao HTTP e selecionar e implementar adequadamente de acordo com os requisitos da aplicacao.
← Voltar para a lista