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

Socket.io部署至主机服务出现404错误,寻求解决方案

Socket.io部署失败的修复方案

问题根因

你碰到的/socket.io/?transport=polling请求错误,本质是客户端请求无法正确路由到你的Node.js服务。结合你的部署情况(服务在https://example.com/foobar/index.js,监听3000端口),问题集中在端口转发、路径映射、跨域限制这三点。


1. 调整服务器代码

(1)添加跨域允许配置

Socket.io必须明确允许客户端域名访问,否则浏览器会拦截请求:

const express = require('express');
const app = express();
const http = require('http');
const server = http.createServer(app);
const { Server } = require("socket.io");

// 新增CORS配置,替换为你的客户端域名
const io = new Server(server, {
  cors: {
    origin: "https://example.com",
    methods: ["GET", "POST"]
  }
});

server.listen(3000, () => {
  console.log('listening on *:3000');
});

io.on("connection", (socket) => {
  console.log("User connected: " + socket.id);
});

(2)确保服务在正确目录启动

进入foobar目录启动服务:

cd /你的主机上foobar的绝对路径
node index.js

2. 配置主机反向代理(最关键)

你的主机(如Nginx/Apache)需要将https://example.com/socket.io的请求转发到本地3000端口的Node服务,以下是常用配置示例:

Nginx配置(添加到你的站点配置文件中)

location /socket.io/ {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

修改后重启Nginx:sudo systemctl restart nginx

Apache配置(先启用mod_proxy和mod_proxy_wstunnel模块,再添加配置)

ProxyPass /socket.io http://localhost:3000/socket.io
ProxyPassReverse /socket.io http://localhost:3000/socket.io
ProxyPass /socket.io/ws http://localhost:3000/socket.io/ws
ProxyPassReverse /socket.io/ws http://localhost:3000/socket.io/ws

重启Apache:sudo systemctl restart apache2


3. 修正客户端连接路径

如果反向代理是将根域名的/socket.io转发到3000端口,client.js无需修改;如果代理的是子路径/foobar/socket.io,则调整client.js:

// 子路径场景下的连接代码
var socket = io("https://example.com/", { path: "/foobar/socket.io" });

4. 验证步骤

  1. 重启Node服务和主机代理服务
  2. 打开客户端页面,查看浏览器控制台是否还有报错
  3. 检查服务器控制台是否打印User connected: [socket.id]格式的日志
  4. 直接访问https://example.com/socket.io/,应返回200状态码的JSON响应(如{"code":0,"message":"Transport unknown"})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:15:12