Я пытаюсь написать средство администрирования для 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}`);
});
Оба не работают (первый не получает ввода/вывода, второй даже не запускает сервер).
Заранее спасибо.
Результат - это то, что вернул мне первый код. Поэтому я думаю, что он не отправляется на stdout, а где-то еще. Есть ли способ выяснить, какой пар он выводит/вводит, а затем читать/писать? – BlakkCooper
В Windows exe может отправлять данные непосредственно на консоль, минуя std-потоки (не ту же консоль, которую использует nodejs). Если в этом случае вы не смогли его захватить –