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

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

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

Ответ 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:

В С#:

В PHP:

В Python:

В 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