What browsers support HTML5 WebSocket API?
Client side
- Hixie-75:
- Chrome 4.0 + 5.0
- Safari 5.0.0
- HyBi-00/Hixie-76:
- Chrome 6.0 - 13.0
- Safari 5.0.2 + 5.1
- iOS 4.2 + iOS 5
- Firefox 4.0 - support for WebSockets disabled. To enable it see here.
- Opera 11 - with support disabled. To enable it see here.
- HyBi-07+:
- Chrome 14.0
- Firefox 6.0 - prefixed:
MozWebSocket
- IE 9 - via downloadable Silverlight extension
- HyBi-10:
- Chrome 14.0 + 15.0
- Firefox 7.0 + 8.0 + 9.0 + 10.0 - prefixed:
MozWebSocket
- 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.
See the test reports from the WS testsuite included in Autobahn WebSockets for feature/protocol conformance tests.
Server side
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
- jWebscoket
- Netty
- xLightWeb
- Webbit
- Atmosphere
- Grizzly
-
Apache ActiveMQ
V 5.6 supports RFC6455
-
Apache Camel
V 2.10 supports RFC6455
- JBoss HornetQ
In C#:
- XSockets.NET
- SuperWebSocket
- Nugget
- Alchemy-Websockets
- Fleck
- [SignalR] 34
In PHP:
In Python:
- pywebsockets
- websockify
- gevent-websocket, gevent-socketio and flask-sockets based on the former
- Autobahn
- Tornado
In C:
In Node.js:
- 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
- WebSocket-Node - Pure JavaScript Client & Server implementation of HyBi-10.
Vert.x (also known as Node.x) : A node like polyglot implementation running on a Java 7 JVM and based on Netty with :
- Support for Ruby(JRuby), Java, Groovy, Javascript(Rhino/Nashorn), Scala, ...
- 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
Related videos on Youtube
Sareuon
Updated on December 26, 2020Comments
-
Sareuon over 3 years
I am going to develop an instant messaging application that runs in the browser.
What browsers support the WebSocket API?
-
Predrag Stojadinović over 14 yearsWe are keeping an up-to-date list of WebSocket supporting browsers on our Java WebSocket project website: jwebsocket.org/browsers.htm
-
dreeves about 14 yearsWe should try to keep these answers up to date, right? I presume that's preferable to re-asking it.
-
kanaka over 13 yearsThe best site for HTML5 and related functionality is caniuse.com
-
Wouter Dorgelo over 13 yearsThere's a good community wiki about HTML5 websockets: stackoverflow.com/questions/4262543/using-html-5-websockets
-
user229044 over 11 yearsThis entire question should be closed and deleted, it's not what Stack Overflow is for. Hit up caniuse.com instead.
-
Travis J over 11 years@meagar - I disagree. I think it should be protected as a wiki to prevent new answers, but preserve the current helpful answer. This question has over 100,000 views.
-
user229044 over 11 years@TravisJ Answers to this question are out of date pretty much as soon as they're posted. The answers below devolve into everything from pitching commercial products to random postings about personal favourite tutorials on websocks. This entire question could read "WEBSOCKETS: DISCUSS". It's a forum post, and it's completely off-topic for Stack Overflow.
-
Travis J over 11 years@meagar - Hence protection. The main answer here should remain. The other answers should be deleted because they lack quality, as you point out. If you feel so strongly about them, you should flag them for deletion.
-
user229044 over 11 years@TravisJ Why? The main answer is bad. It isn't useful if it can't be constantly updated, and that's not he kind of question Stack Overflow is for. I could run through 90% of the answers here and mark them as "not an answer". They're links to random libraries, random tutorials, random tidbits, almost all of them should be comments at best.
-
Colonel Panic over 11 years
-
Xsi about 10 yearsThe question is necessary. And a comment "to closed as too localized by" - it's really a moment in time but not relevant to a small geographic area. Not at all!
-
-
Sasha Chedygov over 13 years+1 for keeping it up to date. Opera will also have Websockets support in 10.70.
-
Cbe317 over 13 yearsRight, I think they renamed Opera 10.70 in Opera 11 opera.com/browser/next
-
Shog9 over 13 years@Tony: IE9 does not support WebSockets. There's experimental support available as an add-on in HTML5 Labs, but not shipped and ready.
-
Aslak Hellesøy over 12 yearsWebbit is an excellent Java WebSocket server that should be added to the list.
-
Ramesh Prasad over 12 yearsUpdate: Chrome 16 uses hybi-17 now.
-
Michael Trouw almost 12 yearscaniuse.com does not display all browsers, there is, for example, also google chrome on IOS. i have no idea if it supports websockets at all, and if, which protocols / implementations.
-
nilskp over 11 yearsIE10 will support websockets, but not IE9.
-
naufraghi over 10 yearsIn Go-lang websockets are in the standard library: go.net/websocket
-
Simon Gillbee about 10 yearsFor C#, you can WCF 4.5 (ships with VS 2013). This has built-in support for websockets now.
-
Cbe317 almost 10 yearsCaniuse is still referenced in client part.
-
Jiloc over 9 yearsfor server side i would add uWSGI. uwsgi-docs.readthedocs.org/en/latest/WebSockets.html
-
mox601 over 9 yearsalso play seems to offer server side web sockets playframework.com/documentation/2.3.x/JavaWebSockets
-
Vibha over 6 yearsExcellent summary. With respect to Firefox, the following link says that RFC 6455 is supported by version 48.0 and above: developer.mozilla.org/en-US/docs/Web/API/WebSockets_API