哪些浏览器支持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