我生成了以下子进程:
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.log结果)
编辑:虽然我确实认为实现这一点需要使用WebSockets,但我想知道是否有其他方法。我看到了几个令人困惑的SO答案和博客文章(在此文章中,在第一步中,OP将日志流式传输到浏览器),但这些都没有帮助,因此我决定发起悬赏以引起一些关注。
});
- Ahmed Ahmedapp.configured
(只需使用app.use(express.static(__dirname));
即可)。 - Shrike