Какие браузеры поддерживают HTML5 WebSocket API?
Я собираюсь разработать приложение для обмена мгновенными сообщениями, которое работает в браузере.
Какие браузеры поддерживают API WebSocket?
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, включенных в 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 имеет встроенную поддержку веб-сокетов RFC6455 и совместим с JSR 356.
- JSR 356, включенный в Java EE 7, определит Java API для WebSocket, но еще не является стабильным и полным. См. Статью Аруна GUPTA WebSocket и Java EE 7 - Подготовка к JSR 356 (TOTD #181) и презентацию QCon (с 00:37:36 до 00:46:53) для получения дополнительной информации о прогрессе. Вы также можете посмотреть на Java Websocket SDK.
Некоторые другие реализации Java:
- Kaazing Gateway
- jWebscoket
- Нетти
- xLightWeb
- Webbit
- атмосфера
- Гризли
- Apache ActiveMQ
V 5.6 supports RFC6455
- Apache Camel
V 2.10 supports RFC6455
- JBoss HornetQ
В C#:
В PHP:
В Python:
- pywebsockets
- websockify
- gevent-websocket, gevent-socketio и фляги-розетки на основе первого
- автобан
- Торнадо
В С:
В Node.js:
- http://socket.io/: Socket.io также имеет серверные порты для Python, Java, Google GO, Rack
- sockjs: sockjs также имеет серверные порты для Python, Java, Erlang и Lua
- WebSocket-Node - Чистый JavaScript-клиент и серверная реализация HyBi-10.
Vert.x (также известный как Node.x): узел, подобный реализации полиглота, работающий на Java 7 JVM и основанный на Netty с:
- Поддержка Ruby(JRuby), Java, Grovy, Javascript(Rhino/Nashorn), Scala, ...
- Истинный поток. (в отличие от Node.js)
- Понимает множество сетевых протоколов из коробки, включая: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS как запасной вариант для WebSockets
http://pusher.com/ - облачный сервис Websocket, доступный через REST API.
Облачная платформа DotCloud поддерживает языки программирования Websockets и Java (Jetty Servlet Container), NodeJS, Python, Ruby, PHP и Perl.
Облачная платформа Openshift поддерживает веб-сокеты и платформы Java (Jboss, Spring, Tomcat и Vertx), PHP (ZendServer & CodeIgniter), Ruby (ROR), Node.js, Python (Django & Flask).
Для других языковых реализаций, см. Статью Wikipedia для получения дополнительной информации.
RFC для веб-сокетов: RFC6455