Выход из дочернего процесса узла после обработки вывода данных - PullRequest
0 голосов
/ 31 января 2020

Я использую Node.js для порождения кукловода в отдельном процессе.

Вот этот дочерний процесс (он записывает веб-сокет в стандартный поток вывода):

// path: cp/index.js

(async () => {
  const browser = await puppeteer.launch();
  const wsEndpoint = browser.wsEndpoint();
  process.stdout.write(wsEndpoint);
})();

Внутри основной процесс, я подключаюсь к экземпляру кукловода с помощью веб-сокета. Вот так:

var cp = await spawn('node', ['./cp/index.js'], {
    detached: true,
    shell: true,
    cwd: __dirname,
});

cp.stdout.on('data', async (ws) => {
    let browser = await puppeteer.connect({ browserWSEndpoint: ws.toString() });
    // Do some processing.
    // Exit the child process.
});

Но, к сожалению, я не могу получить доступ к дочернему процессу в обратном вызове cp.on('data'), чтобы выйти после обработки.

Как я могу получить доступ к веб-сокету из моего дочернего процесса, подключиться к основному процессу, выполнить некоторый асинхронный код и затем отключиться от дочернего процесса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...