2016-05-15 3 views
0

Я пытаюсь написать средство администрирования для 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}`); 
}); 

Оба не работают (первый не получает ввода/вывода, второй даже не запускает сервер).

Заранее спасибо.

ответ

0

Вы уверены, что Unturned.exe отправляет вывод в stdout и stderr. Вы можете сделать это: Unturned.exe -batchmode -nographics +secureserver/servername >data.txt?

+0

Результат - это то, что вернул мне первый код. Поэтому я думаю, что он не отправляется на stdout, а где-то еще. Есть ли способ выяснить, какой пар он выводит/вводит, а затем читать/писать? – BlakkCooper

+0

В Windows exe может отправлять данные непосредственно на консоль, минуя std-потоки (не ту же консоль, которую использует nodejs). Если в этом случае вы не смогли его захватить –

Смежные вопросы