KOAと Node.JS ストリームを学習しています。
私がしようとしているのは、部分的な HTTP 応答を送信し、しばらくして残りの応答を送信することです。
app.get("/", function*(next) {
// TEST:
function delay(ms) {
return function(callback) {
setTimeout(callback, ms);
}
}
this.type = "text/plain";
var Readable = require("stream").Readable;
var stream = this.body = new Readable();
stream._read = function () {};
stream.push('First line.\n');
yield delay(2000);
stream.push('Last line.\n');
stream.push(null);
console.log("done");
});
ブラウザでページをロードしているときに、「最初の行」になると思います。がすぐに表示され、2 秒後に「2 行目」も表示されます。代わりに、応答が全体として送信されるようです。
ここで何が欠けていますか?
最後に、ブラウザへの長期接続で内部的に生成されたログ データをストリーミングしたいと考えています。
ノード 0.11.3 と Koa 0.10.0