Java EE 7已经发布,我特别喜欢其中的一个功能-标准Websockets。目前我在使用Tomcat 7,有没有办法将Java EE 7 Websockets集成到我的Tomcat 7中呢?我已经在Tyrus Websocket的文档中搜索过了,但是没有找到相应的解决方案。 更新:Tomcat 7.0.47已经支持Websocket了,太棒了!
无法将Tyrus WebSocket实现直接用于Tomcat 7。虽然在Tomcat 8中可能会工作,但由于WebSocket存在一些问题,因此直接基于Servlet 3.1 API实现WebSocket就不可能,除非Servlet 3.1实现弯曲一些规则(顺带一提,我将在今年的JavaOne上谈论这个问题)。据我所知,大多数实现都使用容器特定的API来解决这些问题(以及获得更好的性能)。Tomcat的Java WebSocket 1.0(JSR-356)实现目前仅在Tomcat 8中可用。计划一直是在该实现稳定后将其回移至Tomcat 7。我认为这一点已经很接近了。该实现已经在客户端和服务器端通过Autobahn TestSuite测试了一段时间。最近几天有些人进行了压力测试,并发现了一些问题 - 所有这些问题都已经被解决了。今天,您需要从源代码构建Tomcat 8才能获得基于Tomcat的JSR-356实现。在未来的几个版本中(每月发布一个新版本),JSR-356实现也将在Tomcat 7中可用。如果您不想从源代码构建,我认为Glassfish是当前JSR-356实现的唯一选择。我知道Jetty和JBoss也在开发相关实现,但我不知道它们距离完成还有多远。