javascript - Web 套接字连接无法通过 SSL 工作

标签 javascript node.js ssl web websocket

我的 Web Socket 在本地主机和生产 ( https://www.example.com ) 环境中运行得非常好。

但是,当我将相同的代码部署到 pp 环境( https://pp.example.com )时,我得到 WebSocket 握手:意外的响应代码:404

我有 AWS 证书管理器为域 example.com 生成的证书,以及附加域名 www.example.com 和 pp.example.com

www.example.com 和 pp.example.com 位于不同的服务器上,因此它们具有不同的 IP 地址

当我访问 www.example.com 并调用以下电话时,

let ws = new WebSocket("wss://www.example.com/ws");

它工作得很好。网络套接字已连接。

但是,当我切换到 pp.example.com 并进行以下调用时

let ws = new WebSocket("wss://pp.example.com/ws");

我从 Safari、Firefox 和 Chrome 收到错误:

WebSocket connection to 'wss://pp.example.com/ws' failed: Error during WebSocket handshake: Unexpected response code: 404

有什么想法吗?

代码完全相同。

它们部署在 aws beanstalk 上。

生产环境使用全局加速器+应用负载均衡器+EC2

pp环境使用经典负载均衡器+EC2

最佳答案

问题出在负载均衡器的监听器上。 我使用 HTTPS 进行流量转发,而 Web 套接字工作在 TCP 级别,因此,它应该是 SSL TCP。

请参阅下面所附的负载均衡器屏幕截图 enter image description here

关于javascript - Web 套接字连接无法通过 SSL 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61522899/

相关文章:

javascript - 通过 JavaScript 将网页打印为 pdf

javascript - Jquery,如何通过属性的第一个位置值选择元素

javascript - 中间件无法连接 HTTP 服务器

node.js - 如何在 Node js 中验证 API 请求

javascript - Highcharts setState() 上的 3D 渲染问题

node.js - 使用 cURL 测试 CORS

node.js - Passportjs调用setPassword时this.set不是函数

ruby-on-rails - 如何从 Rails 中将 https ://mydomain. com 之类的 url 重定向到 https ://www. mydomain.com

ssl - 如何为我的 elasticsearch 设置 ssl?

google-chrome - Chrome 会忽略给定域或证书的警告吗?