Tôi đang cố gắng để socket.io chạy với chứng chỉ SSL của mình tuy nhiên, nó sẽ không kết nối.node.js, socket.io với SSL
tôi dựa mã của tôi ra khỏi ví dụ chat:
var https = require('https');
var fs = require('fs');
/**
* Bootstrap app.
*/
var sys = require('sys')
require.paths.unshift(__dirname + '/../../lib/');
/**
* Module dependencies.
*/
var express = require('express')
, stylus = require('stylus')
, nib = require('nib')
, sio = require('socket.io');
/**
* App.
*/
var privateKey = fs.readFileSync('../key').toString();
var certificate = fs.readFileSync('../crt').toString();
var ca = fs.readFileSync('../intermediate.crt').toString();
var app = express.createServer({key:privateKey,cert:certificate,ca:ca });
/**
* App configuration.
*/
...
/**
* App routes.
*/
app.get('/', function (req, res) {
res.render('index', { layout: false });
});
/**
* App listen.
*/
app.listen(443, function() {
var addr = app.address();
console.log(' app listening on http://' + addr.address + ':' + addr.port);
});
/**
* Socket.IO server (single process only)
*/
var io = sio.listen(app,{key:privateKey,cert:certificate,ca:ca});
...
Nếu tôi loại bỏ mã SSL nó chạy tốt, tuy nhiên với nó tôi nhận được một yêu cầu đến http://domain.com/socket.io/1/?t=1309967919512
Lưu ý nó không cố gắng https, mà làm cho nó thất bại.
Tôi đang thử nghiệm trên chrome vì đây là trình duyệt mục tiêu cho ứng dụng này.
Tôi xin lỗi nếu đây là một câu hỏi đơn giản, tôi là một newbie node/socket.io.
Cảm ơn!
Ứng dụng khách của bạn có đang cố gắng kết nối với URI có 'wss: //' hay không. – kanaka
nope nó không nhận được ở đó, nó làm cho các yêu cầu để http://domain.com/socket.io/1/?t=1309967919512 sau đó chết. – Beyond
Bạn chỉ định địa chỉ để kết nối như thế nào? "domain.com" giống như một trình giữ chỗ trong thư viện phía máy khách socket.io. Bạn có thể đăng mã Javascript của khách hàng mà bạn đang sử dụng để kết nối không? – kanaka