节点中的子进程缺少信息



我正在通过子进程模块使用Node.js运行Counter Strike:Source Dedicated Server,如下所示:

var spawn = require('child_process').spawn;
const server = spawn('./srcds_run', ['-game cstrike', '+map de_dust2', '+maxplayers 10'])
server.on('error', function (error){
console.log(error);
});
server.stdout.on('data', (data) => {
console.log(`server stdout:n${data}`);
});
server.stderr.on('data', (data) => {
console.error(`server stderr:n${data}`);
});

服务器运行得很好,我可以加入它并播放,但我得到了服务器必须在控制台中返回的丢失信息。

如果我从控制台手动运行服务器,它会显示所有这些信息。但如果我在这个节点上运行它,应用程序只显示这些信息(我使用了pastebin,因为有太多的行无法直接粘贴在这里(

我错过了我想要的最重要的信息,这些信息都是以L字符开头的行,它们是服务器日志,告诉我每一场比赛中发生了什么。

我阅读了文档,但找不到任何关于它的信息,还尝试过messagelog之类的侦听器,但其中任何一个都可以检索信息。

知道怎么得到这些信息吗?谢谢

解决方案是:

  1. 这个Node.js程序只执行带有子进程的服务器
  2. 服务器运行后,直接通过RCON协议进行通信

就这么简单,我不需要从头开始构建一个巨大的程序,使用RCON协议,我可以读取所有输出并发送命令,就像我在ingame控制台中所做的那样。

最新更新