我正在尝试按照这里的教程:
http://nodetuts.com/tutorials/2-webtail-nodejs-child-processes-and-http-chunked-encoding.html#video
以下代码可以使用
var http = require('http');
var spawn = require('child_process').spawn;
http.createServer(
function (request, response) {
response.writeHead(200, {
'Content-Type':'text/plain'
});
var tail_child = spawn('tail', ['-f', 'temp.txt']);
request.connection.on('end', function () {
tail_child.kill();
});
tail_child.stdout.on('data', function (data) {
console.log(data.toString());
response.end(data.toString());
});
}).listen(9000);
但是,浏览器不会收到temp.txt的更新。如果我更换
response.end(data.toString());
与
response.write(data.toString());
它似乎阻止,浏览器中没有任何内容呈现。
编辑:我希望浏览器根据教程实时连续显示文本文件的附加内容
答案 0 :(得分:2)
你应该尝试使用curl来测试transfer-encoding:chunked。许多Web浏览器不会以块的形式呈现内容,可能是因为以这种方式呈现HTML效率不高。如果你在响应中放入了足够的数据,浏览器可能会按照你的预期开始渲染它,但它不是我正常使用的解决方案。
如果你想以你希望的方式将数据流式传输到网络浏览器,我会使用websockets或者可能会对你的流媒体页面进行ajax调用,这会调用html,因为ajax调用应该触发每个块的事件。