Python 进程将消息发送给Node 进程

Python进程派生的NodeJS – 替代process.send()的Python?

我遵循上面的解决scheme,但似乎没有工作(没有消息正在发送的孩子python代码。这是我的代码:

const spawn = require('child_process').spawn; var child = spawn('python3', ['child.py'], { stdio:[null, null, null, 'pipe'] }); child.on('message', function(message) { console.log('Received message...'); console.log(message); }); 

 # !/usr/bin/python3 import os os.write(3, str.encode("HELLO")) 

我可以看到有什么可能出错。 请帮忙。

我认为第四个参数需要'ipc'而不是'pipe'来启用这种消息传递方式。

'ipc' – 创build一个IPC通道,用于在父和子之间传递消息/文件描述符。 一个ChildProcess最多只能有一个IPC stdio文件描述符。 设置此选项将启用subprocess.send()方法。 如果孩子将JSON消息写入此文件描述符,则会在父级中触发subprocess.on('message')事件处理程序。 如果子节点是一个Node.js进程,IPC通道的存在将会使得process.send(),process.disconnect(),process.on('disconnect')和process.on('message')儿童。

https://nodejs.org/api/child_process.html#child_process_options_stdio

从默认设置这个叉的描述(不同于其他语言的产卵):

stdio | 请参阅child_process.spawn()的stdio。 提供此选项时,将覆盖静默。 如果使用数组variables,它必须包含一个值为“ipc”的项目,否则将抛出一个错误。 例如[0,1,2,'ipc']。

https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options