node.js - 如何在 node express socket.io 下设置 SSL?

标签 node.js ssl socket.io

我的 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/

相关文章:

java - 在 Java cacerts 中导入根证书和中间证书的正确方法

php - Apache - 仅允许具有某些 SSL 证书的客户端访问 (POST) 某些端点

http - 如何使用 ATCommands 检查我的 SIM800 模块默认拥有哪个 SSL 证书?如何使用 ATCommands 启用 HTTPS GET?

socket.io - 如果客户端页面加载并且服务器关闭,则重试 socket.io 连接

javascript - 使用 Joi 验证请求时如何避免 Hapi.js 发送 400 错误

javascript - 由 C++ 中的 opencv 控制的 Parrot AR 无人机

node.js - Node ffmpeg child_process 停止但仍然存在

javascript - 从 node.js 向 WMATA API 发出 get 请求

node.js - 仅将我的消息发送到订阅的服务器,而不是我的其他服务器

Android和Socket.io,发送和接收数据