¿Qué navegadores admiten la API HTML5 WebSocket?

278

Voy a desarrollar una aplicación de mensajería instantánea que se ejecuta en el navegador.

¿Qué navegadores admiten la API de WebSocket ?

Sareuon
fuente
2
Mantenemos una lista actualizada de navegadores compatibles con WebSocket en nuestro sitio web del proyecto Java WebSocket: jwebsocket.org/browsers.htm
Predrag Stojadinović
62
Deberíamos tratar de mantener estas respuestas actualizadas, ¿verdad? Supongo que es preferible volver a preguntar.
Dreeves
55
El mejor sitio para HTML5 y funcionalidades relacionadas es caniuse.com
kanaka
55
Hay un buen wiki comunitario sobre HTML5 websockets: stackoverflow.com/questions/4262543/using-html-5-websockets
Wouter Dorgelo
1
@meagar - No estoy de acuerdo. Creo que debería protegerse como wiki para evitar nuevas respuestas, pero preservar la útil respuesta actual. Esta pregunta tiene más de 100,000 visitas.
Travis J

Respuestas:

428

Lado del cliente

  • Hixie-75:
    • Chrome 4.0 + 5.0
    • Safari 5.0.0
  • HyBi-00 / Hixie-76:
  • HyBi-07 +:
  • HyBi-10:
    • Chrome 14.0 + 15.0
    • Firefox 7.0 + 8.0 + 9.0 + 10.0 - prefijado: MozWebSocket
    • IE 10 (de la vista previa del desarrollador de Windows 8)
  • HyBi-17 / RFC 6455
    • Cromo 16
    • Firefox 11
    • Opera 12.10 / Opera Mobile 12.1

Cualquier navegador con Flash puede admitir WebSocket utilizando web-socket-js shim / polyfill.

Consulte caniuse para conocer el estado actual de la compatibilidad con WebSockets en navegadores de escritorio y móviles.

Consulte los informes de prueba del paquete de pruebas WS incluido en Autobahn WebSockets para ver las pruebas de conformidad de características / protocolos.


Lado del servidor

Depende del idioma que uses.

En Java / Java EE:

Algunas otras implementaciones de Java:

C ª#:

En PHP:

En Python:

C ª:

En Node.js:

  • Socket.io : Socket.io también tiene puertos del lado del servidor para Python, Java, Google GO, Rack
  • sockjs : sockjs también tiene puertos del lado del servidor para Python, Java, Erlang y Lua
  • WebSocket-Node : implementación de cliente y servidor de JavaScript puro de HyBi-10.

Vert.x (también conocido como Node.x) : un nodo como la implementación políglota que se ejecuta en Java 7 JVM y se basa en Netty con:

  • Soporte para Ruby (JRuby), Java, Groovy, Javascript (Rhino / Nashorn), Scala, ...
  • True threading. (a diferencia de Node.js)
  • Entiende los múltiples protocolos de red listos para usar , incluidos: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS como alternativa para WebSockets

Pusher.com es un servicio en la nube de Websocket accesible a través de una API REST.

La plataforma en la nube DotCloud admite Websockets y Java (Jetty Servlet Container), NodeJS, Python, Ruby, PHP y lenguajes de programación Perl.

La plataforma en la nube Openshift admite sockets web y plataformas Java (Jboss, Spring, Tomcat y Vertx), PHP (ZendServer & CodeIgniter), Ruby (ROR), Node.js, Python (Django y Flask).

Para implementaciones en otros idiomas, consulte el artículo de Wikipedia para obtener más información .

El RFC para Websockets: RFC6455

Cbe317
fuente
32
+1 por mantenerlo actualizado. Opera también tendrá soporte para Websockets en 10.70.
Sasha Chedygov
Bien, creo que cambiaron el nombre de Opera 10.70 en Opera 11 opera.com/browser/next
Cbe317
3
@ Tony: IE9 no es compatible con WebSockets. Hay soporte experimental disponible como complemento en HTML5 Labs , pero no se entrega y está listo.
Shog9
Webbit es un excelente servidor Java WebSocket que debe agregarse a la lista.
Aslak Hellesøy
2
En Go-lang, los websockets están en la biblioteca estándar: go.net/websocket
naufraghi