2013-07-11 41 views
5

Java EE 7已经停产,我喜欢的功能之一就是标准Websockets。目前我在Tomcat 7工作,有没有将Java EE 7 Websockets集成到我的Tomcat 7中的方法? 我在Tyrus Websocket的文档中搜索它没有成功运行Tomcat 7中的Java EE 7 WebSockets 7

更新:Tomcat 7.0.47带有Websocket支持,是的宝贝!

回答

5

不可能采用Tyrus WebSocket实现并在Tomcat 7中使用它。它可能在Tomcat 8中工作,但不太可能,因为WebSocket存在一些问题,这意味着不可能直接在WebSocket上实现Servlet 3.1 API的顶部,除非Servlet 3.1实现了一些规则。 (另外,今年我将在JavaOne上讨论这个问题)。据我所知,大多数实现都使用容器特定的API来解决这些问题(并且为了获得更好的性能)。

Tomcat的Java WebSocket 1.0(JSR-356)实现目前仅在Tomcat 8中可用。一直以来计划在Tomcat 7稳定后支持该实现。我认为这一点很接近。实施一段时间以来,客户端和服务器都通过了Autobahn TestSuite。在过去的几天里,一些人对它进行了压力测试,并发现了一些问题 - 所有这些问题都已得到解决。

今天,您需要从源代码构建Tomcat 8以获得基于Tomcat的JSR-356实现。在接下来的几个发行版中有一段时间(大致每个月都有一个新的Tomcat 7版本),JSR-356实现也将在Tomcat 7中提供。

如果您不想从源代码构建,我相信Glassfish是您在JSR-356实现中的唯一选择。我知道Jetty和JBoss正在开发一个,但我不知道它们有多完成。

+0

你知道何时JSR-356在Tomcat 7中可以使用吗? –

+0

最好的猜测是接下来发布的应该是9月初的7.0.44,但这只是一个猜测。很多事情可能会改变这一点。 –

+0

所以基本上Tomcat已经扩展成了一个servlet容器,现在也将实现JSR-356? –