我的 node.js 代码基本上是这样开始的:
var app = require('express')();
var http = require('http').createServer(app).listen(5051, function() {
console.log('listening on 127.0.0.1:5051');
});
var io = require('socket.io')(http);
var lobby = io.of('/lobby');
lobby.on("connection", function (socket) {
console.log("Successful connection lobby");
});
所以我启动我的服务器,我启动我的应用程序,建立连接,没问题。但是,尝试添加 SSL 不起作用。我遵循了此 website 中的证书创建说明使用内部地址作为通用名称。
var app = require('express')();
var fs = require('fs');
var options = {
key : fs.readFileSync('/"path_to"/hacksparrow-key.pem'),
cert : fs.readFileSync('/"path_to"/hacksparrow-cert.pem')
};
var https = require('https').createServer(options,app).listen(5051, function() {
console.log('listening on 127.0.0.1:5051');
});
var io = require('socket.io')(https);
var lobby = io.of('/lobby');
lobby.on("connection", function (socket) {
console.log("Successful connection lobby");
});
确保我的客户端使用 https 而不是 http,没有连接,什么都没有。任何人都知道为什么会发生这种情况,而且,如果我使用 Nginx 之类的东西并在其上使用 ssl,这一步是否有必要?
最佳答案
听起来问题是 nginx 正在向您的 Node https 服务器发送 http 请求。
如果 nginx 被设置为使用 ssl,那么 Node 就没有必要使用 ssl。如果您愿意,两个服务器都可以使用 ssl。
关于node.js - 如何在 node express socket.io 下设置 SSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34562398/