SOCKET.IO 启动时传输轮询 404 错误

SOCKET.IO Transport Polling 404 Error when starting

我正在使用最新的 4.1.3 socket.io 服务器和客户端代码。

我的聊天地址是“https://example.com/folder”

我收到以下错误: “https://example.com/folder/socket.io/?EIO=4&transport=polling&t=NgcY9e8”尝试初始化时出现 404 错误。

我的服务器:

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

app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', (socket) => {
    console.log('a user connected');
    socket.on('chat message', (msg) => {
        console.log('message: ' + msg);
    });
});
server.listen(3000, () => {
    console.log('-------------------- Started Server (Port 3000) --------------------');
});

我的客户:

<script src="https://cdn.socket.io/4.1.3/socket.io.js"></script>
<script>
var socket = io({
path: "/chat/socket.io/"
});
</script>

我不确定是什么问题..是服务器端的问题吗? 谢谢!

解决了。

将以下块添加到站点的 conf.d 文件中:

location ~ ^/(node|socket.io) {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:3000/;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      sub_filter /node /;