最新のUbuntuからNode.jsを実行しています。次のコードを取得しました。
var http = require('http');
var s = http.createServer(function(req, res){
res.writeHead(200, {'content-type':'text/html'});
res.write('Hello ');
setTimeout(function(){
res.end('world');
}, 3000);
});
s.listen(8000);
「node server.js」を実行して実行しますが、これで問題ありません。しかし問題は、何らかの理由で、setTimeout が呼び出されるまでコンテンツが出力されないことです。つまり、リクエストの 3 秒後です。
http://www.youtube.com/watch?v=jo_B4LTHi3I (17:08 を参照)の例に多かれ少なかれ従いましたが、彼が得たのと同じ「ストリーミング」のような結果を得ることができません (彼のブラウザは最初に "Hello" を出力し、3 秒後に "world" を出力します)。
私はさまざまなブラウザーを試し、ターミナルで「カール」することさえ試みました。彼がクリップで行ったようにです。しかし、それはすべて同じです。
ある種の出力バッファリングがデフォルトでオンになっていますか、それともなぜこのように動作するのですか?
前もって感謝します!