我无法通过 https 连接端口。我之前在我的代码中有一个 require('http'),我将它更改为 require('http'),但它不起作用。它仍然在浏览器中以 http 打开。这是代码。我浏览了很多论坛,但找不到答案。我的网站有 ssl 证书(smartican.com)
var express = require('express');
var routes = require('./routes');
var https = require('https');
var path = require('path');
var socketio = require('socket.io');
var util = require('util');
var url = require('url');
var DBWrapper = require('node-dbi').DBWrapper;
var DBExpr = require('node-dbi').DBExpr;
var dbConnectionConfig = { config};
dbWrapper = new DBWrapper( "pg", dbConnectionConfig );
dbWrapper.connect();
var app = express();
var connectedsockets = new Array();
// all environments
app.set('port', process.env.PORT || 8080);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.get('/', routes.index);
var server = https.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port with https" + app.get('port'));
});
var io = socketio.listen(server);
最佳答案
尝试
server = https.createServer({key:fs.readFileSync('key.pem'), cert:fs.readFileSync('cert.pem')},app).listen....
您将您的 key 和证书作为对象传递。这使您能够使用您喜欢的 ssl 凭据。
关于node.js+socket.io 端口没有用 ssl 打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717085/