Connectを使用して静的コンテンツを配信しようとしていますが、大きなファイル(> 40KB)で40,960バイトの最初のチャンク(32,940バイト)転送は2分間スリープ状態になり、転送が終了します。私は、ストリームをパイプに接続すると、これが起こることがわかりました(これがConnectが応答を送信する方法です)。 fs.readFile
でNode.js:HTTPSで応答するパイプストリーム
var fs = require("fs"), https = require("https");
var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();
var options = {key: privateKey, cert: certificate};
var server = https.createServer(options,
function(req, res) {
var path = __dirname + "/public" + req.url;
fs.stat(path, function(err, stat){
if(err) {
res.writeHead(404, {'Content-Type': 'text/html'});
res.end(""+err);
} else {
res.writeHead(200, {
'Content-Type': 'text/html',
'Content-Length': stat.size});
var stream = fs.createReadStream(path);
stream.pipe(res);
}
});
}).listen(8364);
、私が再現cannnot:ここ
はを再生これは、ノード0.6.2で、WindowsおよびLinux上で、48980バイトのファイルにコードです
var fs = require("fs"), https = require("https");
var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();
var options = {key: privateKey, cert: certificate};
var server = https.createServer(options,
function(req, res) {
fs.readFile(__dirname + "/public" + req.url, function(err, data){
if(err) {
res.writeHead(404, {'Content-Type': 'text/html'});
res.end(""+err);
} else {
res.writeHead(200, {
'Content-Type': 'text/html',
'Content-Length': data.length});
res.end(data);
} });
}).listen(8364);
私は間違ったことをしましたか?
これは証明書なしでは機能しますか? –
HTTPで動作します。それはあなたが "証明書なし"で意味したものですか? – Jazz