哪些浏览器支持HTML5 WebSocket API?

我将开发一个在浏览器中运行的即时通讯应用程序。

哪些浏览器支持WebSocket API ?

客户端

  • Hixie-75:
    • Chrome 4.0 + 5.0
    • Safari 5.0.0
  • HyBi-00 / Hixie-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的浏览器都可以使用web-socket-js shim / polyfill来支持WebSocket。

查看桌面和移动浏览器的WebSockets支持的当前状态。

请参阅Autobahn WebSockets中包含的WS测试套件的测试报告 ,了解特性/协议一致性测试。


服务器端

这取决于你使用哪种语言。

在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标准
  • 包含在Java EE 7中的JSR 356将为WebSocket定义Java API, 但尚不稳定和完整 。 有关进度的更多信息,请参阅Arun 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#中:

  • XSockets.NET
  • SuperWebSocket
  • 金块
  • 炼金术-的WebSockets
  • 斑点
  • SignalR

在PHP中:

  • 棘轮
  • phpwebsocket 。
  • 可扩展的Web Socket服务器
  • phpdaemon

在Python中:

  • pywebsockets
  • websockify
  • gevent-websocket , gevent-socketio和基于前者的烧瓶插座
  • 高速公路
  • 龙卷风

在C:

  • libwebsockets

在Node.js中:

  • Socket.io:Socket.io也有用于Python,Java,Google GO,Rack的服务器端口
  • sockjs :sockjs也有用于Python,Java,Erlang和Lua的服务器端口
  • WebSocket-Node – HyBi-10的纯JavaScript客户端和服务器实现。

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作为WebSocket的后备

Pusher.com是一个通过REST API访问的Websocket云服务。

DotCloud云平台支持Websockets,Java(Jetty Servlet容器),NodeJS,Python,Ruby,PHP和Perl编程语言。

Openshift云平台支持websockets,Java(Jboss,Spring,Tomcat&Vertx),PHP(ZendServer&CodeIgniter),Ruby(ROR),Node.js,Python(Django&Flask)平台。

对于其他语言实现, 请参阅维基百科文章以获取更多信息 。

Websockets的RFC: RFC6455