Javascript Socket.IO&;SSL

Javascript Socket.IO&;SSL,javascript,ssl,https,socket.io,Javascript,Ssl,Https,Socket.io,我激活了HTTPS,Socket.IO返回错误: 网络::错误连接被拒绝 Server.js: var fs = require('fs'); var https = require('https'); var options = { key: fs.readFileSync(‘./cert.pem'), cert: fs.readFileSync(‘./cert.crt') }; var express = require('express'), app = exp

我激活了HTTPS,Socket.IO返回错误:

网络::错误连接被拒绝

Server.js:

var fs = require('fs');
var https = require('https');

var options = {
    key: fs.readFileSync(‘./cert.pem'),
    cert: fs.readFileSync(‘./cert.crt')
};

var express = require('express'),
    app = express(),
    server = https.createServer(options, app);
    var io = require('socket.io').listen(server);
    server.listen(8080);
正面:

<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>

var socket = io.connect('IP:8080');

var socket=io.connect('IP:8080');
如果禁用HTTPS,Socket.IO会工作…

两种理论:

1) 你是远程托管的吗?如果是这样,您的端口号可能与本地服务器的端口号不同。例如,在Heroku托管的节点应用程序上,您可以通过以下方式访问端口号:

process.env.PORT
所以你可以做:

server.listen(process.env.PORT || 8080);
2) 这也可能是CORS问题。您需要包括访问控制允许源标题。在设置“app”和调用“server.listen(…)”之间包括如下中间件实用程序:

希望这有助于两种理论:

1) 你是远程托管的吗?如果是这样,您的端口号可能与本地服务器的端口号不同。例如,在Heroku托管的节点应用程序上,您可以通过以下方式访问端口号:

process.env.PORT
所以你可以做:

server.listen(process.env.PORT || 8080);
2) 这也可能是CORS问题。您需要包括访问控制允许源标题。在设置“app”和调用“server.listen(…)”之间包括如下中间件实用程序:

希望这有帮助