Итак, я пытаюсь использовать NodeJS с Express + Socket.IO.NodeJS + Express + Socket.IO + SSL
Я рассмотрел около 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 и имя домена по соображениям безопасности.
Edit:
При работе:
[[email protected] exampleapp]# node app.js
info - socket.io started
Server a-hoy!
Жаль, что я наткнулся на это раньше! Я использую Nginx, и он работает (я думаю). Следующая проблема для меня - это использовать кластеры и socket.io (woo-heee!) –