什么会导致 wss 无法正常使用 https

问题描述 投票:0回答:0

wss 失败,而 https 正常工作。 ws 在开发机器上也运行良好

const socket = io.connect('wss://' + ENDPOINT + ':3002', {
        path: '/doctor/persona/',
        transports: ['websocket'],
        secure: true
});
const socket = io.connect(ENDPOINT, {
        path: '/doctor/persona/',
        transports: ['websocket'],
        secure: true
});

尝试过有或没有

secure = true

const io = require("socket.io")(server, {
  origins: "*:*",
  path: "/doctor/persona",
  transports: ["websocket"],
  rejectUnauthorized: false
});

EIO=3
无论那是什么

node js 服务器有 2 个服务,其中一个位于 :3000 主要处理 https,另一个位于 :3002 的 websocket 用于单个 websocket。

使用 nginx,会出现 502 错误,但每当套接字尝试时,无论是否有 nginx,pm2 日志似乎都不会更新。

location /doctor/persona/ {
                proxy_pass https://localhost:3002/doctor/persona/;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_read_timeout 30s;
                proxy_connect_timeout 15s;
                #proxy_ssl_server_name on;
                proxy_set_header Host $http_host;
                proxy_cache_bypass $http_upgrade;
        }
SSL_do_handshake() failed (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:SSL alert number 40) while SSL handshaking to upstream

SSL 证书由 LetsEncrypt 提供。

我尝试过通过nginx代理,直接访问相关端口等。代码与

ws
http
完美配合。
wss
还没有工作,我仍然不知道是什么失败了,因为 pm2 日志没有显示任何内容!

node.js nginx ssl socket.io wss
© www.soinside.com 2019 - 2024. All rights reserved.