What browsers support HTML5 WebSocket API?
I am going to develop an instant messaging application that runs in the browser.
What browsers support the WebSocket API?
- Chrome 4.0 + 5.0
- Safari 5.0.0
- Chrome 14.0
- Firefox 6.0 – prefixed:
- IE 9 – via downloadable Silverlight extension
- Chrome 14.0 + 15.0
- Firefox 7.0 + 8.0 + 9.0 + 10.0 – prefixed:
- IE 10 (from Windows 8 developer preview)
- HyBi-17/RFC 6455
- Chrome 16
- Firefox 11
- Opera 12.10 / Opera Mobile 12.1
Any browser with Flash can support WebSocket using the web-socket-js shim/polyfill.
See caniuse for the current status of WebSockets support in desktop and mobile browsers.
It depends on which language you use.
In Java/Java EE:
- Jetty 7.0 supports it (very easy to use)
V 7.5 supports RFC6455– Jetty 9.1 supports javax.websocket / JSR 356)
- GlassFish 3.0 (very low level and sometimes complex), Glassfish 3.1 has new refactored Websocket Support which is more developer friendly
V 3.1.2 supports RFC6455
- Caucho Resin 4.0.2 (not yet tried)
V 4.0.25 supports RFC6455
- Tomcat 7.0.27 now supports it
V 7.0.28 supports RFC6455
- Tomcat 8.x has native support for websockets RFC6455 and is JSR 356 compliant
- JSR 356 included in Java EE 7 will define the Java API for WebSocket, but is not yet stable and complete. See Arun GUPTA’s article WebSocket and Java EE 7 – Getting Ready for JSR 356 (TOTD #181) and QCon presentation (from 00:37:36 to 00:46:53) for more information on progress. You can also look at Java websocket SDK.
Some other Java implementations:
- Kaazing Gateway
- Apache ActiveMQ
V 5.6 supports RFC6455
- Apache Camel
V 2.10 supports RFC6455
- JBoss HornetQ
- gevent-websocket, gevent-socketio and flask-sockets based on the former
- Socket.io : Socket.io also has serverside ports for Python, Java, Google GO, Rack
- sockjs : sockjs also has serverside ports for Python, Java, Erlang and Lua
Vert.x (also known as Node.x) : A node like polyglot implementation running on a Java 7 JVM and based on Netty with :
- True threading. (unlike Node.js)
- Understands multiple network protocols out of the box including: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS as fallback for WebSockets
Pusher.com is a Websocket cloud service accessible through a REST API.
DotCloud cloud platform supports Websockets, and Java (Jetty Servlet Container), NodeJS, Python, Ruby, PHP and Perl programming languages.
Openshift cloud platform supports websockets, and Java (Jboss, Spring, Tomcat & Vertx), PHP (ZendServer & CodeIgniter), Ruby (ROR), Node.js, Python (Django & Flask) plateforms.
For other language implementations, see the Wikipedia article for more information.
The RFC for Websockets : RFC6455