Il limite del polling
Prima di WebSocket, la comunicazione “real-time” tra browser e server è realizzata con workaround:
- Short polling — client ripete richieste HTTP ogni N secondi
- Long polling — richiesta HTTP tenuta aperta fino a evento
- Comet — tecniche di streaming HTTP
- Server-Sent Events (2006-2009) — unidirezionale server→client
Nessuna è efficiente per comunicazione bidirezionale a bassa latenza (chat, trading, gaming, live dashboard).
Il rilascio
RFC 6455 è pubblicato dall’IETF nel dicembre 2011. Autori principali: Ian Fette (Google), Alexey Melnikov. Il protocollo era stato introdotto in bozza nel 2008 da Ian Hickson (HTML5 spec) e Michael Carter.
Il draft finale è lavorato da un gruppo di lavoro che include browser vendor, Apache Foundation, altri implementatori.
Come funziona
- Handshake HTTP Upgrade — client invia
GETcon headerUpgrade: websocket - Server risponde
101 Switching Protocols - Connessione TCP persistente — dopo handshake, frame binari WebSocket
- Framing — frame di tipo text/binary/close/ping/pong con mascheramento client→server
- URI scheme —
ws://(plaintext) owss://(TLS)
const ws = new WebSocket('wss://api.example.com/stream');
ws.onmessage = (e) => console.log(e.data);
ws.send(JSON.stringify({ action: 'subscribe' }));
Adozione browser
- Chrome 14 (settembre 2011) — supporto finale
- Firefox — supporto in arrivo nelle release 2012
- Safari — in roadmap per WebKit
Con la diffusione di questi browser si prevede disponibilità universale entro la seconda metà del 2012.
Librerie e framework
Il protocollo viene adottato rapidamente:
- Socket.IO (2010, fallback per browser legacy)
- ws — libreria Node.js, più veloce
- Phoenix Channels (Elixir)
- SignalR (.NET)
- Django Channels (Python)
- ActionCable (Rails 5)
- Spring WebSocket (Java)
Casi d’uso
- Chat — Slack, Discord, WhatsApp Web
- Trading — orderbook real-time, prezzi live
- Gaming — multiplayer online
- Collaborazione — Google Docs, Figma, Notion
- Dashboard live — monitoring, observability
- IoT — telemetria, controllo remoto
- Notifiche push — web apps
Nel contesto italiano
WebSocket si candida a diventare il fondamento delle applicazioni real-time italiane: fintech e trading online, monitoraggio sanitario, collaborazione SaaS, gaming online iniziano a progettare architetture che includono un canale bidirezionale persistente.
Riferimenti: RFC 6455 (dicembre 2011). IETF. Ian Fette (Google), Alexey Melnikov. Schemi ws://, wss://.
