Nodejs服务器https正在运行,但socket没有连接(net :: ERR_CONNECTION_TIMED_OUT)

时间:2017-10-19 04:16:08

标签: node.js sockets https socket.io

我正在设置一个nodejs服务的子域,以便我可以使用socket.io。我通过https服务页面,我让服务器正常运行。该页面已提供。那不是问题。问题是当我尝试将套接字连接到客户端时。我一直试图解决这个问题,我相信这里有很多有能力的人可以帮助我。

这是我的网站https://reward.cshive.com

我收到错误消息:

Error message

客户端

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);

1 个答案:

答案 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();您不需要指定主机