You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

socket.io连接出现net::ERR_SSL_PROTOCOL_ERROR错误求助

解决socket.io连接时的net::ERR_SSL_PROTOCOL_ERROR错误

这个错误的核心是客户端尝试通过HTTPS/WSS加密协议连接,但服务端仅搭建了HTTP/WS非加密服务器,协议不匹配导致SSL握手失败。

解决方案一:服务端启用HTTPS/WSS(生产环境推荐)

先准备好SSL证书(可通过Let's Encrypt免费获取),修改服务端代码改用https模块创建服务器:

const https = require("https");
const fs = require("fs");
const express = require("express");
const app = express();

// 配置SSL证书路径
const sslOptions = {
  key: fs.readFileSync("/etc/letsencrypt/live/your-domain/privkey.pem"),
  cert: fs.readFileSync("/etc/letsencrypt/live/your-domain/fullchain.pem")
};

// 创建HTTPS服务器
const server = https.createServer(sslOptions, app);
const io = require("socket.io")(server);

// 启动服务器,监听443端口(HTTPS默认端口)
server.listen(443, () => {
  console.log("HTTPS服务器已启动");
});

解决方案二:客户端改用HTTP/WS连接(仅测试环境)

如果是本地测试或开发环境,把客户端连接地址改成http开头,而非https:

// 示例:连接本地HTTP服务器
const socket = io("http://your-server-ip:3000");

注意事项

  • 生产环境必须使用HTTPS/WSS,防止数据明文传输被窃取
  • 确保服务器对应端口(443或自定义端口)的防火墙已开放
  • 若使用Nginx等反向代理,需添加WebSocket代理配置,确保socket.io连接能正常转发

内容的提问来源于stack exchange,提问作者corasphinx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:25:25