我試圖讓我的SSL證書運行socket.io,但它不會連接。node.js,使用SSL的socket.io
我根據我的代碼關閉聊天例如:
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});
...
如果我刪除了SSL代碼運行良好,但與它我得到http://domain.com/socket.io/1/?t=1309967919512
注意一個請求時,它並不想HTTPS,這導致它失敗。
我正在測試鉻,因爲它是此應用程序的目標瀏覽器。
我很抱歉,如果這是一個簡單的問題,我是一個節點/ socket.io新手。
謝謝!
您的客戶端是否嘗試連接到'wss://'前綴URI。 – kanaka
不讓它到達那裏,它使請求http://domain.com/socket.io/1/?t=1309967919512然後死亡。 – Beyond
你如何指定要連接的地址? 「domain.com」聽起來像是socket.io客戶端庫中的佔位符。你可以發佈你用來連接的客戶端Javascript代碼嗎? – kanaka