【问题标题】:GWT 2.8 websocket supportGWT 2.8 websocket 支持
【发布时间】:2016-05-25 05:06:08
【问题描述】:

gwt 2.8 中的 jetty 服务器现在支持 websocket 吗?据我所知,它以前不支持。如果有一个肯定的答案,那么如何使它起作用?我认为剥离 jetty-8 并用 jetty-9 替换它不是一个好主意。

【问题讨论】:

    标签: gwt websocket jetty gwt-2.8


    【解决方案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 了解更多信息有关此主题的信息)。

    【讨论】:

      【解决方案2】:

      GWT 2.8 已切换到 Jetty 9.2,并且现在支持 Servlets 3.1 servlets 容器初始化程序,我认为它们被用于设置 WebSockets。
      我还没有尝试过,但我想你现在可以在 DevMode 中使用 WebSocket,只要你将所需的依赖项添加到类路径中。

      您也可以简单地使用单独的服务器,而不是嵌入到 DevMode 中的服务器。

      【讨论】:

      • 谢谢你的回答,但我发现了关于这个问题的两个论点: 1. 如果你点击这个链接 [gwt.googlesource.com/gwt/+/2.8.0-beta1/dev/build.xml] 你会看到码头版本不是 9.2,而是 8.1.12; 2. 在我的项目的日志跟踪中,每次运行它我都会看到:“INFO:oejs.Server:jetty-8.y.z-SNAPSHOT”。你从哪里得到声称码头版本是 9.2 的信息?
      • 我在今年早些时候合并了更改,并在不久之后将 Jetty 从 Maven 工件中解开了。这是在 beta1 之后。
      猜你喜欢
      • 1970-01-01
      • 2013-05-10
      • 2015-08-03
      • 2018-02-02
      • 1970-01-01
      • 2013-05-24
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多