WebSocket
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,[1] mas pode ser usado por qualquer cliente ou servidor de aplicativos. A API WebSocket[2] está sendo padronizada pelo W3C[3]; e o protocolo WebSocket está sendo padronizado pelo IETF.[4]
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[1].
Esquema de URL
[editar | editar código-fonte]A especificação do protocolo WebSocket define dois tipos de esquemas de URL: ws: e wss:,[5] 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.[6]
Suporte
[editar | editar código-fonte]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[1] a conformidade destes browsers aos aspectos específicos do protocolo.
- Internet Explorer 10+
- Mozilla Firefox 4+
- Safari 5+
- Google Chrome 4+
- Opera 11+[7]
Protocol | Draft date | Internet Explorer | Firefox[8] (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 | 6[9]1 | ||||||
8 hybi-10 | July 11, 2011 | 7[10]1 | 7 | 14[11] | ||||
13 RFC 6455 | December, 2011 | 10[12] | 11 | 11 | 16[13] | 6 | 12.10[14] |
Exemplos de WebSockets[15]
[editar | editar código-fonte]- PHP
- Node.js
- Java
- Ruby
- EventMachine[21]
- Python
- pywebsocket[22]
- Erlang
- Shirasu[23]
- C++
- libwebsockets[24]
- .NET
- SuperWebSocket[25]
Referências
- ↑ a b c http://websocket.org/
- ↑ http://dev.w3.org/html5/websockets/
- ↑ Ian Hickson, Google, Inc. (20 de janeiro de 2011). «The WebSocket API». 20/01/2011. Consultado em 27 de janeiro de 2011
- ↑ «draft-abarth-thewebsocketprotocol-01 - The WebSocket protocol». datatracker.ietf.org (em inglês). Consultado em 28 de junho de 2022
- ↑ IANA Uniform Resource Identifer (URI) Schemes
- ↑ http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol
- ↑ «Can I use... Support tables for HTML5, CSS3, etc». caniuse.com. Consultado em 28 de junho de 2022
- ↑ «WebSockets (support in Firefox)». Developer.mozilla.org. 30 de setembro de 2011. Consultado em 10 de dezembro de 2011
- ↑ «Bug 640003 - WebSockets - upgrade to ietf-06». Bugzilla.mozilla.org. Consultado em 10 de dezembro de 2011
- ↑ WebSockets - upgrade to ietf-07>
- ↑ «Chromium bug 64470». Code.google.com. 25 de novembro de 2010. Consultado em 10 de dezembro de 2011
- ↑ «WebSockets in Windows Consumer Preview». IE Engineering Team. 19 de março de 2012. Consultado em 23 de julho de 2012
- ↑ «WebKit Changeset 97247: WebSocket: Update WebSocket protocol to hybi-17». Trac.webkit.org. Consultado em 10 de dezembro de 2011
- ↑ «A hot Opera 12.50 summer-time snapshot». Opera Developer News. Consultado em 3 de agosto de 2012. Cópia arquivada em 5 de agosto de 2012
- ↑ https://www.html5rocks.com/pt/tutorials/websockets/basics/
- ↑ http://socketo.me/
- ↑ http://socket.io/
- ↑ https://github.com/Worlize/WebSocket-Node
- ↑ https://github.com/einaros/ws
- ↑ http://www.eclipse.org/jetty/
- ↑ http://github.com/igrigorik/em-websocket
- ↑ http://code.google.com/p/pywebsocket/
- ↑ https://github.com/michilu/shirasu
- ↑ «Cópia arquivada». Consultado em 17 de abril de 2017. Arquivado do original em 2 de outubro de 2011
- ↑ http://superwebsocket.codeplex.com/