首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

反向 Ajax,第 3 部分 Web 服务器和 Socket.IO(3)

反向 Ajax,第 3 部分 Web 服务器和 Socket.IO(3)

JbossJboss 是构建于 Tomcat 之上的应用服务器。从版本 5 起,它就开始支持 Comet 和 NIO。Jboss 7 还在开发中,但下面的 表 4 中包含该版本。
表 4. Jboss 支持支持Jboss 5Jboss 6Jboss 7非阻塞 I/OXXXServlet 2.5XXXServlet 3.0
XXCometXXXWebSocket



WebSphereWebSphere 是一个 IBM 应用服务器。WebSphere V8(参阅 ,阅读相关声明)添加了对 Servlet 3 API(包括 Comet 的标准化异步 API)的支持。
表 5. WebSphere 支持支持WebSphere 8非阻塞 I/OXServlet 2.5XServlet 3.0XCometXWebSocket

使用通用 API 会怎样?每个服务器都自带了用于 Comet 和 WebSocket 的本机 API 。正如您所猜测的,编写一个便携版的 Web 应用程序会非常困难。Servlet 3.0 Specification 包含挂起请求并稍后重新使用请求的其他方法,并充许所有支持 Servlet 3.0                Specification 的 Web 容器支持 Comet 长轮询请求。
Jetty 团队提供了一个名叫 Jetty Continuation 的库,该库独立于 Jetty 容器。Jetty Continuation 库可以智能地检测容器或规范是否可用。如果在 Jetty 服务器上运行,则会使用本机 Jetty API 。如果在支持 Servlet 3.0 规范的容器上运行,则会使用通用的 API。否则会使用不可伸缩的实现。
关于 WebSocket,Java 中没有相关的标准,因此,如果您想要使用 WebSocket,则需要在 Web 应用程序中使用容器供应商 API 。
表 6 概括了各种服务器支持的技术
表 6. 服务器支持的技术容器CometWebSocketJetty 6Jetty ContinuationN/AJetty 7Servlet 3.0
Jetty ContinuationNative Jetty APIJetty 8Servlet 3.0
Jetty ContinuationNative Jetty APITomcat 6Advanced I/ON/ATomcat 7Servlet 3.0
Advanced I/O
Jetty Continuation
N/AGlassfish 2Native Grizzly APIN/AGlassfish 3Servlet 3.0
本机 Grizzly API
Jetty                        Continuations
本机 Grizzly APIJboss 5本机 Jboss APIN/AJboss 6Servlet 3.0
本机 Jboss API
Jetty Continuation                        
N/AJboss 7Servlet 3.0
本机 Jboss API
Jetty                        Continuations
N/AWebSphere 8Servlet 3.0
Jetty Continuation
N/A
关于 WebSocket, 除了使用容器 API ,没有其他的明确方案。至于 Comet,支持 Servlet 3.0 Specification 的所有容器都支持 Comet。Jetty Continuation 的优势是它在所有的这些容器上都提供了对 Comet 的支持。因此,一些 Reverse Ajax 库(在  和                本  文章中的下一篇文章中会讨论它)都在对其服务器端 API 使用 Jetty Continuation。
Jetty Continuation API 在本文的 Jetty  中曾描述过。Servlet 3.0 Specification 在本系列  的两个 Comet 示例中使用和描述过。
返回列表