Grizzly/Glassfish-无法建立websockets握手



我正试图让WebSockets在Grizzly/Glassfish之上工作。我已经克隆了示例WebSockets聊天应用程序,构建并部署到Glassfish 3.1.2。但是,我无法连接WebSockets。WebSockets握手失败,因为我得到了405(不允许使用方法)响应。这是有道理的,因为Servlet中有什么:

public class WebSocketsServlet extends HttpServlet {
    private final ChatApplication app = new ChatApplication();
    @Override
    public void init(ServletConfig config) throws ServletException {
        WebSocketEngine.getEngine().register(app);
    }
    @Override
    public void destroy() {
        WebSocketEngine.getEngine().unregister(app);
    }
}

没有指定doGet方法,所以我想知道是否需要更多的配置,或者是否需要自己在servlet doGet方法中实现握手逻辑?

我试图在glassfish 3.1.2上使用grizzy-websockets-cat-2.1.9.war,但也出现了同样的错误。

遵循本页的建议http://www.java.net/forum/topic/glassfish/glassfish/websocket-connection-not-establishing-glasshfish-server-how-fix-it-0

哪个州使用这里找到的版本(我认为版本会表明它更旧,但文件上的时间戳是2012年1月30日):

战争

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.grazzly.samples&a=灰色的websockets聊天&v=1.9.46&e=战争

来源

https://maven.java.net/service/local/artifact/maven/redirect?r=releases&g=com.sun.grazzly.samples&a=灰色的websockets聊天&v=1.9.46&e=罐子&c=来源

通过使用这场战争,一切都会奏效。

对于那些喜欢使用glassfish网络控制台的人。您可以通过以下方式启用web套接字:

配置>服务器配置>网络配置>协议>http-listener-1,然后是http选项卡>滚动到底部并选中Websockets支持。

注意配置>默认配置>。。。也有相同的选项

你可能会发现这片大陆周围还有一个码头。

您似乎还没有启用websocket支持(默认情况下已禁用)。

发出以下命令,然后重新启动服务器:

asadmin set configs.config.server config.network config.procols.procols.http-listener-1.http.websockets support-enabled=true

您可以将http-listener-1替换为希望启用WS支持的任何http侦听器。

相关内容

  • 没有找到相关文章

最新更新