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

在IIS 10部署NextJS+Socket.IO应用遇WebSocket 404问题求助

NextJS+Socket.IO部署IIS后Socket.IO轮询请求404问题求助

我参考Halfblood Programmer的教程,使用HttpPlatformHandler v1.2在Windows Server 2022系统的IIS 10中部署了NextJS+Socket.IO应用。当前应用可正常运行,但Socket.IO轮询请求返回404错误。我已安装并启用IIS WebSocket Protocol支持,且在web.config文件中添加了<webSocket enabled="true" />配置,但问题仍未解决,恳请技术协助。

相关代码

server.js

const { createServer } = require('http');
const { parse } = require('url');
const next = require('next');
const { Server } = require('socket.io');

const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

app.prepare().then(() => {
    const server = createServer((req, res) => {
        const parsedUrl = parse(req.url, true);
        handle(req, res, parsedUrl);
    });

    const io = new Server(server, {
        cors: {
        origin: 'http://ipaddress:3001', // Update this to the origin you want to allow
        methods: ['GET', 'POST']
        }
    });

    io.on('connection', (socket) => {
        console.log('Client connected:', socket.id);

        socket.on('register', (userId) => {
        // Handle user registration
        });

        socket.on('send_message', ({ itemId, message, senderId, origin }) => {
            io.emit('new_message', { itemId, message, senderId, origin });
        });

        socket.on('disconnect', () => {
        console.log('Client disconnected:', socket.id);
        // Handle user disconnection
        });
    });

    server.listen(3001, (err) => {
        if (err) throw err;
        console.log('> Ready on http://ipaddress:3001');
    });
});

package.json(scripts部分)

"scripts": {
    "dev": "node server.js",
    "build": "next build",
    "start": "NODE_ENV=production node server.js",
    "lint": "next lint"
  }

错误截图

Socket.IO轮询请求404错误截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:50:03