为了让自定义Node服务器上的socket.io接受CORS(跨域资源共享)请求,需要进行以下步骤:
cors
模块或自定义中间件来实现。以下是一个使用cors
模块的示例:const express = require('express');
const app = express();
const cors = require('cors');
app.use(cors());
// 添加 socket.io 相关代码
origin
选项来实现。以下是一个仅允许特定来源的示例:app.use(cors({
origin: 'https://example.com' // 允许的来源
}));
// 添加 socket.io 相关代码
methods
和allowedHeaders
选项来实现。以下是一个允许所有HTTP方法和自定义头部的示例:app.use(cors({
methods: ['GET', 'POST', 'PUT', 'DELETE'], // 允许的HTTP方法
allowedHeaders: ['Content-Type', 'Authorization'] // 允许的头部
}));
// 添加 socket.io 相关代码
const server = require('http').createServer(app);
const io = require('socket.io')(server, {
cors: {
origin: 'https://example.com', // 允许的来源,与CORS中间件保持一致
methods: ['GET', 'POST', 'PUT', 'DELETE'], // 允许的HTTP方法,与CORS中间件保持一致
allowedHeaders: ['Content-Type', 'Authorization'] // 允许的头部,与CORS中间件保持一致
}
});
// 添加 socket.io 相关代码
server.listen(3000, () => {
console.log('Server started on port 3000');
});
上述步骤将在自定义Node服务器上配置CORS以允许socket.io接受跨域请求。关于socket.io的更多信息和使用方法,可以参考腾讯云提供的产品介绍链接:腾讯云 WebSocket。
领取专属 10元无门槛券
手把手带您无忧上云