在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" }
错误截图

内容的提问来源于stack exchange,提问作者pryxen
相关产品推荐
相关产品推荐

