Websocket 连接建立错误:net::ERR_CONNECTION_REFUSED 'wss://'

Websocket 连接建立错误:net::ERR_CONNECTION_REFUSED 'wss://'

我首先在 stackoverflow 上问了这个问题,但它看起来更像是一个服务器问题,而不是编码问题。我正在用 Java EE 开发一个项目,我可以访问大学局域网下的服务器计算机。为了提供详细信息,我还在下面添加了我的代码。

我尝试仅在单个页面上通过 WebSocket 连接到服务器。

我的客户端网络套接字:

var socket = new WebSocket("wss://serverName:8181/projectName/actions");

Java 服务器端点:

/actions

使用websocket的URL结构如下:

https://服务器名称/项目名称/页面名称.xhtml

我的上下文根与项目名称相同。web.xml 文件中的安全约束:

<security-constraint>  
    <web-resource-collection>  
        <web-resource-name>SecureResource</web-resource-name>  
        <url-pattern>/projectName/*</url-pattern>  
        <http-method>GET</http-method>
        <http-method>POST</http-method> 
    </web-resource-collection>  
    <user-data-constraint>  
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>  
    </user-data-constraint>  
</security-constraint>

我使用 Glassfish 应用服务器 4.1。该服务器有两个 http 侦听器。关于侦听器:

Http-侦听器-1:监听 8080 端口,未启用安全性,未启用 websocket 支持

Http-侦听器-2:监听 8181 端口,安全已启用,websocket 已启用

两者都启用了 SSL3 和 TLS。我提供服务器详细信息是因为我对服务器问题真的是个新手,所以我不知道这些详细信息是否重要。我在尝试寻找修复程序时还运行了以下命令。但这些命令可能不相关:

asadmin set server.network-config.protocols.protocol.http-listener-1.http.scheme-mapping=X-Forwarded-Proto
asadmin set server.network-config.protocols.protocol.http-listener-2.http.scheme-mapping=X-Forwarded-Proto

我的所有连接都可以在 HTTPS 上运行,没有任何问题。然而,在我使用 websocket 的页面中,我收到此错误:

与 'wss://serverName:8181/projectName/actions' 的 WebSocket 连接失败:建立连接时出错:net::ERR_CONNECTION_REFUSED

我尝试了很多不同的方法。我还尝试了不带端口号的 websocket URI。在服务器计算机上拥有数字证书之前,一切都运行良好。当时我只是使用了“ws”而不是“wss”,并且我在 web.xml 文件中没有安全约束。但是,经过大量阅读和尝试后,我无法在 HTTPS 下提供 websocket 连接。

相关内容