我最近切换到使用SSL证书的安全请求。由于我已经切换,我收到以下错误,
无法加载 https://example.com:2096/socket.io/?EIO=3&transport=polling&t=M33Uhsp: 请求中不存在“Access-Control-Allow-Origin”标头 资源。因此不允许来源“https://example.com” 访问。响应的HTTP状态代码为521。
我已尝试将socket.io
的来源设置为我们网站的域名,但这并没有解决任何问题。我不确定这是否与其他任何内容有关,但是当我使用正常http
请求时,它工作正常。缺什么? (CORS?)
答案 0 :(得分:0)
我只是创建密钥和证书文件,并包括如下。
var app = require('../app');
var server = https.createServer({
key: fs.readFileSync('/var/www/html/driver_app/key.key', 'utf8'),
cert: fs.readFileSync('/var/www/html/driver_app/cert.crt', 'utf8'),
requestCert: false,
rejectUnauthorized: false
},app);
var ios = require('socket.io')(server);
require("../socket/socket")(ios);
// socket.js is
module.exports = function(io){
io.use(require('socketio-wildcard')());
io.use(require('./middleware'));
io.on('connection', (socket)=>{
console.log("connection done")
socket.on("error", (err)=>{
console.error("server err", err);
})
})
}
其中app是我的快递应用程序,socket / socket.js是我的socket.io应用程序。这对我来说很好用