我在应用程序负载均衡器后面的aws上运行tomcat / java web应用程序。
我在“/ socketserver”设置了一个WebSocket端点。本地一切都有效,但当web应用程序部署到aws时,通过javascript创建websocket客户端 (例如var exampleSocket = new WebSocket(“ws://www.example.com/socketserver”); 在Websocket握手期间返回404错误。
是否需要进行其他设置?我听说ALB原生支持websockets。感谢。
我试过的一些事情:
创建一个单独的目标组,其路径为“/ socketserver”,并添加其他http规则,并启用会话粘性。
将maven websocket依赖范围更改为提供。
检查了访问日志,找到了 127.0.0.1 - - [26 / Mar / 2017:13:31:29 +0000]“GET / socketserver HTTP / 1.1”404 1002
答案 0 :(得分:0)
我认为你需要激活" Stickiness"在你的目标群体中。
您还需要指定运输" websocket"对于你所有的socket.io客户端。
答案 1 :(得分:0)
如果您正在使用ALB并且遇到此问题尝试更新您的安全策略,我遇到了同样的问题,即使它在另一个网站的相同设置中工作得很好但是注意到安全策略落后了大约1年。将它更新到更新的似乎已经解决了这个问题。