node.jsを使用してサーバー側で実行可能ファイルを実行するのは、 を呼び出すのと同じくらい簡単child_process.spawn()
です。
コレクターが生成するファイルの内容をクライアントにプッシュしたい場合があります。
これは、 Readable Stream を使用しfs.watch
てファイルを読み取ることで実現できます。socket.io
また、データをクライアントにブロードキャストするために使用できます。
更新ここでは、 express.jsを使用した簡単な実装を示します。
/**
* app.js
* make sure to install express (npm install express)
* and place the collector executable beside this file
* or set collectorPath to the correct path.
* run the app and open 'http://0.0.0.0:3000/start' in your browser.
*/
var child_process = require('child_process');
var path = require('path');
var express = require('express');
var app = express();
var collector = null;
app.get('/start', function (req, res) {
if (collector !== null) {
res.end('Collector is already running.');
return;
}
var collectorPath = path.join(__dirname, './collector');
collector = child_process.spawn(collectorPath, [], {
stdio: 'ignore'
});
collector.on('exit', function (signal, code) {
console.log('Collector exited with signal: %s and code: %d', signal, code);
collector = null;
});
res.end('Done.');
});
app.listen(3000);
console.log('Listening on port 3000');