我将开发一个在浏览器中运行的即时消息应用程序 .
哪些浏览器支持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 - support for WebSockets disabled . 启用它see here .
Opera 11 - with support disabled . 启用它see here .
HyBi-07:
Chrome 14.0
Firefox 6.0 - 前缀: MozWebSocket
MozWebSocket
IE 9 - 通过downloadable Silverlight extension
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支持的当前状态,请参阅caniuse .
有关功能/协议一致性测试,请参阅Autobahn WebSockets中包含的WS测试套件中的test reports .
这取决于您使用的语言 .
在Java / Java EE中:
Jetty 7.0支持它(非常好用) V 7.5 supports RFC6455 - Jetty 9.1支持javax.websocket / JSR 356)
V 7.5 supports RFC6455
GlassFish 3.0(非常低级别,有时很复杂),Glassfish 3.1具有新的重构Websocket支持,更加开发人员友好 V 3.1.2 supports RFC6455
V 3.1.2 supports RFC6455
Caucho Resin 4.0.2(尚未尝试过) V 4.0.25 supports RFC6455
V 4.0.25 supports RFC6455
Tomcat 7.0.27现在支持 V 7.0.28 supports RFC6455
V 7.0.28 supports RFC6455
Tomcat 8.x具有对websockets RFC6455的本机支持,并且符合JSR 356
JSR 356 included in Java EE 7将为WebSocket定义Java API,但尚未稳定和完整 . 有关进度的更多信息,请参阅Arun GUPTA的文章WebSocket and Java EE 7 - Getting Ready for JSR 356 (TOTD #181)和QCon presentation(从00:37:36到00:46:53) . 你也可以看看Java websocket SDK .
其他一些Java实现:
Kaazing Gateway
jWebscoket
Netty
xLightWeb
Webbit
Atmosphere
Grizzly
Apache ActiveMQ V 5.6 supports RFC6455
V 5.6 supports RFC6455
Apache Camel V 2.10 supports RFC6455
V 2.10 supports RFC6455
JBoss HornetQ
在C#中:
XSockets.NET
SuperWebSocket
Nugget
Alchemy-Websockets
Fleck
SignalR
在PHP中:
Ratchet
phpwebsocket .
Extendible Web Socket Server
phpdaemon
在Python中:
pywebsockets
websockify
gevent-websocket,gevent-socketio和flask-sockets基于前者
Autobahn
Tornado
在C:
在Node.js中:
Socket.io:Socket.io还有用于Python,Java,Google GO,Rack的服务器端口
sockjs:sockjs还有用于Python,Java,Erlang和Lua的服务器端口
WebSocket-Node - HyBi-10的纯JavaScript客户端和服务器实现 .
Vert.x (also known as Node.x):类似于在Java 7 JVM上运行并基于Netty的多语言实现的节点:
支持Ruby(JRuby),Java,Grovy,Javascript(Rhino / Nashorn),Scala,......
真正的线程 . (与Node.js不同)
开箱即用了解多种网络协议,包括:TCP,SSL,UDP,HTTP,HTTPS,Websockets,SockJS作为WebSockets的后备
Pusher.com是可通过REST API访问的Websocket Cloud 服务 .
DotCloud Cloud 平台支持Websockets,Java(Jetty Servlet Container),NodeJS,Python,Ruby,PHP和Perl编程语言 .
Openshift Cloud 平台支持websockets,Java(Jboss,Spring,Tomcat和Vertx),PHP(ZendServer&CodeIgniter),Ruby(ROR),Node.js,Python(Django&Flask)平台 .
对于其他语言实现,see the Wikipedia article for more information .
RFC for Websockets:RFC6455
1 回答
客户端
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 - support for WebSockets disabled . 启用它see here .
Opera 11 - with support disabled . 启用它see here .
HyBi-07:
Chrome 14.0
Firefox 6.0 - 前缀:
MozWebSocket
IE 9 - 通过downloadable Silverlight extension
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支持的当前状态,请参阅caniuse .
有关功能/协议一致性测试,请参阅Autobahn WebSockets中包含的WS测试套件中的test reports .
服务器端
这取决于您使用的语言 .
在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 included in Java EE 7将为WebSocket定义Java API,但尚未稳定和完整 . 有关进度的更多信息,请参阅Arun GUPTA的文章WebSocket and Java EE 7 - Getting Ready for JSR 356 (TOTD #181)和QCon presentation(从00:37:36到00:46:53) . 你也可以看看Java websocket SDK .
其他一些Java实现:
Kaazing Gateway
jWebscoket
Netty
xLightWeb
Webbit
Atmosphere
Grizzly
Apache ActiveMQ
V 5.6 supports RFC6455
Apache Camel
V 2.10 supports RFC6455
JBoss HornetQ
在C#中:
XSockets.NET
SuperWebSocket
Nugget
Alchemy-Websockets
Fleck
SignalR
在PHP中:
Ratchet
phpwebsocket .
Extendible Web Socket Server
phpdaemon
在Python中:
pywebsockets
websockify
gevent-websocket,gevent-socketio和flask-sockets基于前者
Autobahn
Tornado
在C:
在Node.js中:
Socket.io:Socket.io还有用于Python,Java,Google GO,Rack的服务器端口
sockjs:sockjs还有用于Python,Java,Erlang和Lua的服务器端口
WebSocket-Node - HyBi-10的纯JavaScript客户端和服务器实现 .
Vert.x (also known as Node.x):类似于在Java 7 JVM上运行并基于Netty的多语言实现的节点:
支持Ruby(JRuby),Java,Grovy,Javascript(Rhino / Nashorn),Scala,......
真正的线程 . (与Node.js不同)
开箱即用了解多种网络协议,包括:TCP,SSL,UDP,HTTP,HTTPS,Websockets,SockJS作为WebSockets的后备
Pusher.com是可通过REST API访问的Websocket Cloud 服务 .
DotCloud Cloud 平台支持Websockets,Java(Jetty Servlet Container),NodeJS,Python,Ruby,PHP和Perl编程语言 .
Openshift Cloud 平台支持websockets,Java(Jboss,Spring,Tomcat和Vertx),PHP(ZendServer&CodeIgniter),Ruby(ROR),Node.js,Python(Django&Flask)平台 .
对于其他语言实现,see the Wikipedia article for more information .
RFC for Websockets:RFC6455