【发布时间】:2014-03-22 23:47:26
【问题描述】:
我生成了以下孩子:var spw = spawn('ping', ['-n','10', '127.0.0.1']),我希望在客户端(浏览器)一个接一个接收 ping 结果,而不是作为一个整体.
到目前为止,我尝试过这个:
app.get('/path', function(req, res) {
...
spw.stdout.on('data', function (data) {
var str = data.toString();
res.write(str + "\n");
});
...
}
还有:
...
spw.stdout.pipe(res);
...
在这两种情况下,浏览器都会等待 10 个 ping 完成,然后将结果作为一个整体打印出来。我想一一拥有,如何实现?
(客户端只是调用.../path 并且console.logs 结果)
编辑:虽然我确实相信 websockets 是实现这一点所必需的,但我只想知道是否还有其他方法。我看到几个令人困惑的SO answers 和博客帖子(在this 帖子中,在第一步中,OP 将日志流式传输到浏览器)并没有帮助,因此我决定寻求赏金以引起注意。
【问题讨论】:
标签: node.js express spawn child-process