Які браузери підтримують HTML5 WebSocket API?


278

Я збираюся розробити додаток для обміну миттєвими повідомленнями, який працює в браузері.

Які браузери підтримують API WebSocket ?


2
Ми зберігаємо оновлений
Predrag Stojadinović

62
Ми повинні намагатися оновлювати ці відповіді, правда? Я вважаю, що бажано повторно запитувати його.
дрів

5
Кращий сайт для HTML5 і пов'язаних з ними функціональності caniuse.com
канака

5
Там хороша вікі спільноти про HTML5 WebSockets: stackoverflow.com/questions/4262543/using-html-5-websockets
Wouter Доргело

1
@meagar - я не згоден. Я думаю, що це має бути захищено як вікі, щоб запобігти новим відповідям, але зберегти поточну корисну відповідь. Це питання має понад 100 000 переглядів.
Travis J

Відповіді:


428

Сторона клієнта

Будь-який браузер із Flash може підтримувати WebSocket за допомогою web-socket-js shim / polyfill.

Про поточний стан підтримки 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, але ще не є стабільним та завершеним . Дивіться статтю Arun GUPTA WebSocket та Java EE 7 - Підготовка до JSR 356 (TOTD # 181) та презентації QCon (з 00:37:36 до 00:46:53) для отримання додаткової інформації про прогрес. Ви також можете подивитися на SDK для веб-сокета Java .

Деякі інші реалізації 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, доступний через API REST.

Хмарна платформа 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).

Інші мовні реалізації див. У статті Вікіпедії для отримання додаткової інформації .

RFC для веб-розеток: RFC6455


32
+1 за постійне оновлення. Opera також матиме підтримку Websockets в 10.70.
Саша Чедигов

Так, я думаю, що вони перейменували Opera 10.70 в Opera 11 opera.com/browser/next
Cbe317

3
@Tony: IE9 не підтримує WebSockets. Експериментальна підтримка доступна як доповнення в лабораторіях HTML5 , але не постачається та не готова.
Shog9

Webbit - чудовий сервер Java WebSocket, який слід додати до списку.
Аслак Хеллешо

2
Web-розетки Go-lang знаходяться у стандартній бібліотеці: go.net/websocket
naufraghi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.