Streaming respostas Http com NodeJS
Estou experimentando várias respostas de um servidor HTTP NodeJS simples. O efeito que estou tentando obter é uma renderização visual mais rápida de uma página da web. Como a resposta é transmitida para o navegador comtransfer-encoding: chunked
(certo?) Eu estava pensando em processar o layout da página primeiro e o restante dos dados após um atras
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/html'
, 'Transfer-Encoding': 'chunked'
});
res.write('<html>\n');
res.write('<body>\n');
res.write('hello ');
res.write('</body>\n');
res.write('</html>\n');
setTimeout(function () {
res.end('world');
},1500);
}).listen(3000, '127.0.0.1');
O fato é que parece que a resposta não é enviada atéres.end('world')
, a menos que os dados já escritos sejam longos o suficiente, por exemplo,res.write(new Array(2000).join('1'))
ao invés dissres.write('hello')
, faria o truque.
O Nó armazena em buffer minhas gravações até que os dados sejam dimensionáveis o suficiente para serem enviados? Se for esse o caso, o tamanho do pedaço é configurável?