所以我正在尝试将 NodeJS 与 Express + Socket.IO 结合使用。
我已经查看了大约 5 个其他堆栈溢出问题,并查看了文档,以至于我的眼睛感觉要流血了!
我已经通过以下方式实现了它:
var fs = require('fs'),
privateKey = fs.readFileSync('/path/to/private.key').toString(),
certificate = fs.readFileSync('/path/to/certificate.crt').toString();
var options = {
key: privateKey,
cert: certificate
};
var express = require('express'),
app = express(express.logger()),
https = require('https'),
server = https.createServer(options, app),
io = require('socket.io').listen(server),
routes = require('./routes');
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
server.listen(5050, function() {
console.log("Server a-hoy!");
});
app.get('/', routes.index);
io.sockets.on('connection', function (socket) {
socket.on('givemeresults', function (data) {
io.sockets.emit('results', { some: 'data' });
});
});
除了当我运行这个时:
curl https://test.something.net:5050
我得到以下(不需要的)结果
curl: (35) Unknown SSL protocol error in connection to test.something.net:5050
这样做的重点是我们可以在真实网页的后台使用 Socket.io 将信息返回给用户。
它在我使用普通 http 时有效。证书也是正确的。
您能看出失败的任何可能原因吗?
出于安全原因,我不得不删除现有的 SSL 证书位置和域名。
编辑:
运行时:
[root@example exampleapp]# node app.js
info - socket.io started
Server a-hoy!
最佳答案
较新版本的 haproxy 支持 ssl。 Haproxy 非常稳定和高效,我相信它可以处理 ssl 而不是其他(软件)解决方案。我花了相当多的时间试图让 haproxy + socket.io(网络和闪存套接字支持)+ ssl 工作。我将其写成博客,这样其他人就可以避免在这上面花费太多时间。
http://blog.carbonfive.com/2013/05/02/using-haproxy-with-socket-io-and-ssl/
这个配置对我们来说非常棒。
干杯, 基督徒
关于node.js - NodeJS + Express + Socket.IO + SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16515852/