2013-07-11 42 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? –