Какие браузеры поддерживают HTML5 WebSocket API?

278

Я собираюсь разработать приложение для обмена мгновенными сообщениями, которое работает в браузере.

Какие браузеры поддерживают API WebSocket ?

Sareuon
источник
2
Мы ведем актуальный список браузеров, поддерживающих WebSocket, на нашем веб-сайте проекта Java WebSocket: jwebsocket.org/browsers.htm
Предраг Стоядинович,
62
Мы должны стараться держать эти ответы в актуальном состоянии, верно? Я полагаю, что это предпочтительнее, чем переспрашивать.
dreeves
5
Лучший сайт для HTML5 и связанных с ним функций - caniuse.com
канака
5
Есть хорошая вики для сообщества о веб-сокетах HTML5: stackoverflow.com/questions/4262543/using-html-5-websockets
Wouter Dorgelo
1
@meagar - я не согласен. Я думаю, что это должно быть защищено как вики, чтобы предотвратить новые ответы, но сохранить текущий полезный ответ. Этот вопрос имеет более 100 000 просмотров.
Трэвис Дж

Ответы:

428

Сторона клиента

Любой браузер с 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:

В C #:

В PHP:

В Python:

В С:

В 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) : узел типа реализации полиглота, работающий на Java 7 JVM и основанный на Netty с:

  • Поддержка Ruby (JRuby), Java, Groovy, Javascript (Rhino / Nashorn), Scala, ...
  • Истинный поток. (в отличие от Node.js)
  • Понимает множество сетевых протоколов из коробки, включая: TCP, SSL, UDP, HTTP, HTTPS, Websockets, SockJS как запасной вариант для WebSockets

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

Cbe317
источник
32
+1 за актуальность. Opera также будет иметь поддержку Websockets в 10.70.
Саша Чедыгов
Да, я думаю, что они переименовали Opera 10.70 в Opera 11 opera.com/browser/next
Cbe317
3
@ Тони: IE9 не поддерживает WebSockets. Экспериментальная поддержка доступна в виде дополнения в HTML5 Labs , но не поставляется и не готова.
Shog9
Webbit - отличный сервер Java WebSocket, который следует добавить в список.
Аслак Хеллесёй
2
В Go-lang websockets находятся в стандартной библиотеке: go.net/websocket
naufraghi