WebSocket é uma tecnologia que permite a comunicação bidirecional por canais full-duplex sobre um único soquete Transmission Control Protocol (TCP). Ele é projetado para ser executado em browsers e servidores web que suportem o HTML5, mas pode ser usado por qualquer cliente ou servidor de aplicativos. A API WebSocket está sendo padronizada pelo W3C; e o protocolo WebSocket está sendo padronizado pelo IETF.
Websocket foi desenvolvido para ser implementado em browsers web e servidores web, mas pode ser usado por qualquer cliente ou aplicação servidor. O protocolo Websocket é um protocolo independente, baseado em TCP. Sua única relação com o HTTP é que seu handshake é interpretado por servidores HTTP como uma requisição de upgrade.
A especificação do protocolo WebSocket define dois tipos de esquemas de URL: ws: e wss:, para conexões não criptografadas e criptografadas, respectivamente. Além do esquema de nomes, o resto dos componentes da URL são definidos para usar a sintaxe genérica de URI.
Todos os browsers mais atuais, com exceção do browser Android, suportam a ultima especificação do protocolo Websocket (RFC 6455). Uma suíte de testes detalhados para protocolo lista a conformidade destes browsers aos aspectos específicos do protocolo.
| Protocol | Draft date | Internet Explorer | Firefox (PC) | Firefox (Android) | Chrome (PC, Mobile) | Safari (Mac, iOS) | Opera (PC, Mobile) | Android Browser |
|---|---|---|---|---|---|---|---|---|
| hixie-75 | February 4, 2010 | 4 | 5.0.0 | |||||
| hixie-76 hybi-00 |
May 6, 2010 May 23, 2010 |
4.0 (disabled) | 6 | 5.0.1 | 11.00 (disabled) | |||
| 7 hybi-07 | April 22, 2011 | 61 | ||||||
| 8 hybi-10 | July 11, 2011 | 71 | 7 | 14 | ||||
| 13 RFC 6455 | December, 2011 | 10 | 11 | 11 | 16 | 6 | 12.10 |