我正在标准网页和Tomcat v7.0.62服务器之间设置WebSocket。在Firefox,Edge和IE11上打开/关闭Tomcat SSL时连接正常。但是,在Chrome(v66.03)中,只有当我在服务器上启用SSL并通过https连接时,websocket才会连接。在Chrome中,当我在服务器上关闭SSL并尝试通过http连接时,它会引发错误。
以下是Chrome尝试通过http连接时在Tomcat上关闭SSL时出现的错误...
end_time
这是客户端上的WebSocket连接代码......
Error in connection establishment: net::ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION
这是Chrome专用的,需要非https websocket连接上的特殊代码吗?
答案 0 :(得分:5)
这是Chrome特定的行为。 Chrome不允许不安全的websocket(ws)连接到localhost(仅限wss,因此您应为本地Web / websocket服务器设置TLS证书)。但是在Firefox和其他浏览器中也应该没有任何问题。
有关此问题,请参阅有关Chromium的Chrome错误报告。这个特殊的问题是故意的,他们已经做出了这个改变 通过防止攻击内部网络设备和侦听本地主机的进程,Chrome更安全。
https://bugs.chromium.org/p/chromium/issues/detail?id=378566
答案 1 :(得分:1)
我无法确认您的问题。您可以在此处尝试回声测试:http://www.websocket.org/echo.html
网站支持http和https,您可以指定ws://echo.websocket.org
和wss://echo.websocket.org
。我尝试了所有组合,他们都为我工作。
我的猜测是,这是服务器的配置问题或浏览器扩展程序的问题。
答案 2 :(得分:0)
Error in connection establishment: net::ERR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION
看起来您可能在客户端和服务之间有中间身份验证的代理。根据代理和客户端配置,它可能允许通过SSL连接,但普通的http将被过滤。