我正在设置一个nodejs服务的子域,以便我可以使用socket.io。我通过https服务页面,我让服务器正常运行。该页面已提供。那不是问题。问题是当我尝试将套接字连接到客户端时。我一直试图解决这个问题,我相信这里有很多有能力的人可以帮助我。
这是我的网站https://reward.cshive.com
我收到错误消息:
客户端
var socket = io.connect('https://reward.cshive.com:3000');
服务器侧
const https = require('https');
var fs = require('fs');
const options = {
key: fs.readFileSync('/etc/letsencrypt/live/reward.cshive.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/reward.cshive.com/cert.pem')
};
var app = https.createServer(options, (req, res) => {
fs.readFile(__dirname + '/served.html',
function (err, data) {
if (err) {
res.writeHead(500);
console.log('Error loading page');
return res.end('Error loading page');
}
console.log('--Connection');
res.writeHead(200);
res.end(data);
});
})
var server = app.listen(3000, function(err) {
if (err) {
console.log(err);
} else {
console.log("Listening on port 3000");
}
});
var io = require('socket.io').listen(server);
答案 0 :(得分:0)
在您的
上试试把它放在服务器部分,socket.io的路径可能会改变。对我来说是/socket.io-client /
location /socket.io-client/ {
proxy_pass http://node_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_buffers 8 32k;
proxy_buffer_size 64k;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
这个
upstream node_server {
server 127.0.0.1:8080;
keepalive 15;
}
也这样做
var socket = io.connect();您不需要指定主机