gwt 2.8 中的码头服务器现在支持 websocket 吗?据我所知,它以前不支持。如果有一个肯定的答案,那么如何使它起作用?我认为剥离 jetty-8 并用 jetty-9 替换它不是一个好主意。
问问题
1032 次
2 回答
1
那么如何使它工作呢?
我想在 GWT 2.8.0 发布后详细说明一下。使用时唯一需要的javax.websocket
是了解与 GWT 打包的 Jetty 版本和以下一组 Maven 依赖项(另请参阅GitHub 上的 Jetty WebSocket 示例):
<project>
<properties>
<sdm.jetty.version>9.2.14.v20151106</sdm.jetty.version>
</properties>
<dependencies>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-server</artifactId>
<version>${sdm.jetty.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>javax-websocket-server-impl</artifactId>
<version>${sdm.jetty.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
</depencies>
</project>
确保提供了范围——对于前两者,这意味着它们没有被打包到最终的应用程序中——只有在运行 SuperDev-Mode (SDM) 时才需要这些范围。如果java.websocket-api
在您的类路径上,则基于注释的配置可能根本不起作用(至少在嵌入式 Tomcat 和 Jetty 中),因为注释被错误的类加载器拾取(另请参阅相关问题WebSocket 404 error以获取更多信息)话题)。
于 2016-10-28T13:08:03.730 回答
0
GWT 2.8 已切换到 Jetty 9.2,现在支持 Servlets 3.1 servlets 容器初始化器,我认为它被用于设置 WebSockets。
我还没有尝试过,但我想您现在可以在 DevMode 中使用 WebSocket,前提是您将所需的依赖项添加到类路径中。
您也可以简单地使用单独的服务器,而不是嵌入到 DevMode 中的服务器。
于 2016-05-25T07:03:10.503 回答