Ответ 1
Клиентская сторона
- Хикси-75:
- Chrome 4.0 + 5.0
- Safari 5.0.0
- HyBi-00/Хикси-76:
- Chrome 6.0 - 13.0
- Safari 5.0.2 + 5.1
- iOS 4.2 + iOS 5
- Firefox 4.0 - отключена поддержка WebSockets. Чтобы включить его см. Здесь.
- Opera 11 - с отключенной поддержкой. Чтобы включить его см. Здесь.
- HyBi-07 +:
- Chrome 14.0
- Firefox 6.0 - префикс:
MozWebSocket
- IE 9 - через загружаемое расширение Silverlight
- HyBi-10:
- Chrome 14.0 + 15.0
- Firefox 7.0 + 8.0 + 9.0 + 10.0 - префикс:
MozWebSocket
- IE 10 (из предварительного просмотра разработчика Windows 8)
- HyBi-17/RFC 6455
- Chrome 16
- Firefox 11
- Opera 12.10/Opera Mobile 12.1
Любой браузер с Flash может поддерживать WebSocket с помощью web-socket-js shim/polyfill.
См. caniuse для текущего состояния поддержки WebSockets в настольных и мобильных браузерах.
См. отчеты об испытаниях из WS testuite, включенного в Autobahn WebSockets для проверки соответствия функций/протоколов.
Серверная сторона
Это зависит от того, какой язык вы используете.
В Java/Java EE:
- Jetty 7.0 поддерживает его (очень проста в использовании)
V 7.5 supports RFC6455
- Jetty 9.1 поддерживает javax.websocket/JSR 356) - GlassFish 3.0 (очень низкий уровень, а иногда и сложный), Glassfish 3.1 имеет новую реорганизованную поддержку Websocket, которая более дружественна для разработчиков
V 3.1.2 supports RFC6455
- Caucho Resin 4.0.2 (еще не опробован)
V 4.0.25 supports RFC6455
- Tomcat 7.0.27 теперь поддерживает его
V 7.0.28 supports RFC6455
- Tomcat 8.x имеет встроенную поддержку websockets RFC6455 и совместим с JSR 356.
- JSR 356, включенный в Java EE 7, определит Java API для WebSocket, но еще не является стабильным и полным. См. Статью Arun GUPTA WebSocket и Java EE 7 - Подготовка к JSR 356 (TOTD # 181) и QCon presentation (с 00:37:36 до 00:46:53) для получения дополнительной информации о прогрессе. Вы также можете посмотреть Java websocket SDK.
Некоторые другие реализации Java:
- Kaazing Gateway
- jWebscoket
- Netty
- xLightWeb
- Webbit
- Atmosphere
- Grizzly
- Apache ActiveMQ
V 5.6 supports RFC6455
- Apache Camel
V 2.10 supports RFC6455
- JBoss HornetQ
В С#:
В PHP:
В Python:
- pywebsockets
- websockify
- gevent-websocket, gevent-socketio и flask-sockets на основе прежнего
- Autobahn
- Tornado
В C:
В Node.js:
- Socket.io: Socket.io также имеет серверные порты для Python, Java, Google GO, Rack
- sockjs: sockjs также имеет серверные порты для Python, Java, Erlang и Lua
- WebSocket-Node - Чистая реализация JavaScript-клиента и сервера HyBi-10.
Vert.x(также известный как Node.x): A node, как реализация polyglot, запущенная на JVM Java 7 и на основе Netty с:
- Поддержка Ruby (JRuby), Java, Grovy, Javascript (Rhino/Nashorn), Scala,...
- Истинная резьба. (в отличие от Node.js)
- Понимает множество сетевых протоколов из коробки, включая: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS в качестве резерва для WebSockets
Pusher.com - это облачная служба Websocket, доступная через API REST.
DotCloud облачная платформа поддерживает Websockets и Java (Jetty Servlet Container), NodeJS, Python, Ruby, PHP и языки программирования Perl.
Openshift облачная платформа поддерживает websockets и Java (Jboss, Spring, Tomcat и Vertx), PHP (ZendServer и CodeIgniter), Ruby (ROR), Node.js, формы Python (Django и Flask).
Для других языковых реализаций см. статью Wikipedia для получения дополнительной информации.
RFC для веб-сайтов: RFC6455