私はUnturned(ゾンビサバイバルゲーム)用の管理ツールを作成しようとしています。そのゲームのサーバーは端末で動作します。私は何とかそのコンソールのライブ出力を取得したいと同時に、端末に書き込むことができるように、node.jsで書かれた私の管理ツールでサーバを制御することができます。私はgoogle /ソリューションの検索を試みたが、何を探すべきかを完全には分かっていない。これまではchild_processを使っていろいろ試してみましたが、役に立たなかったのです。そのようなことは可能なのでしょうか?node.js:(別の)コンソールアプリケーションのstdin、stdoutをリダイレクトする
const spawn = require('child_process').spawn;
const proc = spawn("Unturned.exe", ["-batchmode", "-nographics", "+secureserver/servername", "", "", "", ]);
proc.stdout.on('data', (data) => {
console.log(data);
});
proc.stderr.on('data', (data) => {
console.log(data);
});
proc.on('exit', (code) => {
console.log(`Child exited with code ${code}`);
});
などが挙げられる。
const spawn = require('child_process').spawn;
const proc = spawn("Unturned.exe", ["-batchmode", "-nographics", "+secureserver/servername", "", "", "", ], { stdio: ['pipe', 'pipe', 'pipe'] });
proc.stdout.on('data', (data) => {
console.log("stdout: "+data);
});
proc.stderr.on('data', (data) => {
console.log("stderr: "+data);
});
proc.on('exit', (code) => {
console.log(`Child exited with code ${code}`);
});
の両方が動作しない(最初の1は、入力/出力を得ることはありません、もう一つはさえ成功したサーバを起動しません)。
ありがとうございます。
出力は、最初のコードから返されたものです。だから私はそれがstdoutに送信しないだろうと思うが、どこか他の。どのような蒸気が出力/入力された後にそれを読み書きするかを理解する方法はありますか? – BlakkCooper
Windowsでは、exeはstdストリーム(nodejsが使用するのと同じコンソールではない)をバイパスしてコンソールに直接データを送ることができます。あなたがそれを捕まえられなかった場合 –