¿Qué navegadores admiten la API WebSocket HTML5?
Voy a desarrollar una aplicación de mensajería instantánea que se ejecuta en el navegador.
¿Qué navegadores admiten la API WebSocket ?
Lado del cliente
- Hixie-75:
- Cromo 4.0 + 5.0
- Safari 5.0.0
- HyBi-00/Hixie-76:
- Cromo 6.0 - 13.0
- Safari 5.0.2 + 5.1
- iOS 4.2 + iOS 5
- Firefox 4.0: soporte para WebSockets deshabilitado . Para habilitarlo ver aquí .
- Opera 11 - con soporte deshabilitado . Para habilitarlo ver aquí .
- HyBi-07+:
- Cromo 14.0
- Firefox 6.0 - prefijado:
MozWebSocket
- IE 9: a través de la extensión Silverlight descargable
- HyBi-10:
- Cromo 14.0 + 15.0
- Firefox 7.0 + 8.0 + 9.0 + 10.0 - prefijado:
MozWebSocket
- IE 10 (de la vista previa para desarrolladores de Windows 8)
- HyBi-17/RFC 6455
- Cromo 16
- Firefox 11
- Ópera 12.10 / Ópera Móvil 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 conjunto de pruebas WS incluido en Autobahn WebSockets para conocer las pruebas de conformidad de funciones/protocolos.
Lado del servidor
Depende del idioma que uses.
En Java/Java EE:
- Jetty 7.0 lo admite (muy fácil de usar)
V 7.5 supports RFC6455
- Jetty 9.1 admite javax.websocket/JSR 356) - GlassFish 3.0 (nivel muy bajo y a veces complejo), Glassfish 3.1 tiene un nuevo soporte Websocket refactorizado que es más amigable para los desarrolladores.
V 3.1.2 supports RFC6455
- Caucho Resin 4.0.2 (aún no probado)
V 4.0.25 supports RFC6455
- Tomcat 7.0.27 ahora lo admite
V 7.0.28 supports RFC6455
- Tomcat 8.x tiene soporte nativo para websockets RFC6455 y es compatible con JSR 356
- JSR 356 incluido en Java EE 7 definirá la API de Java para WebSocket, pero aún no es estable ni completo . Consulte el artículo de Arun GUPTA WebSocket y Java EE 7: preparación para JSR 356 (TOTD #181) y la presentación de QCon (de 00:37:36 a 00:46:53) para obtener más información sobre el progreso. También puedes consultar el SDK de websocket de Java .
Algunas otras implementaciones de Java:
- Puerta de enlace de Kaazing
- jwebscoket
- netty
- xLightWeb
- Webbit
- Atmósfera
- Oso pardo
- Apache ActiveMQ
V 5.6 supports RFC6455
- Camello apache
V 2.10 supports RFC6455
- JBoss HornetQ
Cª#:
- XSockets.NET
- SuperWebSocket
- Pepita
- Alquimia-Websockets
- Mancha
- [SeñalR] 34
En PHP:
- Trinquete
- phpwebsocket .
- Servidor de socket web extensible
- phpdaemon
En pitón:
- pywebsockets
- websockify
- gevent-websocket , gevent-socketio y flask-sockets basados en el primero
- autopista
- Tornado
Cª:
- libwebsockets
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) : una implementación políglota similar a un nodo que se ejecuta en una JVM de Java 7 y se basa en Netty con:
- Soporte para Ruby (JRuby), Java, Groovy, Javascript (Rhino/Nashorn), Scala, ...
- Hilo verdadero. (a diferencia de Node.js)
- Entiende múltiples protocolos de red listos para usar, incluidos: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS como respaldo para WebSockets
Pusher.com es un servicio en la nube de Websocket al que se puede acceder a través de una API REST.
La plataforma en la nube DotCloud admite Websockets y los lenguajes de programación Java (Jetty Servlet Container), NodeJS, Python, Ruby, PHP y Perl.
La plataforma en la nube Openshift admite websockets y plataformas Java (Jboss, Spring, Tomcat y Vertx), PHP (ZendServer y CodeIgniter), Ruby (ROR), Node.js, Python (Django y Flask).
Para implementaciones de otros idiomas, consulte el artículo de Wikipedia para obtener más información .
El RFC para Websockets: RFC6455