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,http://websocket.org/ mas pode ser usado por qualquer cliente ou servidor de aplicativos. A API WebSockethttp://dev.w3.org/html5/websockets/ 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.

Esquema de URL A especificação do protocolo WebSocket define dois tipos de esquemas de URL: ws: e wss:,IANA Uniform Resource Identifer (URI) Schemes 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.http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol

Suporte 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.

Internet Explorer 10+ Mozilla Firefox 4+ Safari 5+ Google Chrome 4+ Opera 11+ + Implementation status 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-76hybi-00 May 6, 2010May 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 7WebSockets - upgrade to ietf-07>1 7 14 13 RFC 6455 December, 2011 10 11 11 16 6 12.10

Exemplos de WebSocketshttps://www.html5rocks.com/pt/tutorials/websockets/basics/ PHP Ratchethttp://socketo.me/ Node.js Socket.IOhttp://socket.io/ WebSocket-Nodehttps://github.com/Worlize/WebSocket-Node wshttps://github.com/einaros/ws Java Jettyhttp://www.eclipse.org/jetty/ Ruby EventMachinehttp://github.com/igrigorik/em-websocket Python pywebsockethttp://code.google.com/p/pywebsocket/ Erlang Shirasuhttps://github.com/michilu/shirasu C++ libwebsockets .NET SuperWebSockethttp://superwebsocket.codeplex.com/

Transmission Control Protocol