subprocess库中的IPC连接不是双工的

以下JavaScript表示父进程:

this.sso = fork('./app/utils/SSOproxy.js', [], { stdio: [0, 1, 2, 'ipc'] }); //__handshake this.sso.send({ opcode:'ACK', params: [], ref: null }); console.log('STEP_1'); //__main process.on('message', ((msg)=>{ switch (msg.opcode){ case 'ACK': (msg.params[0] === 'ok') console.log('STEP_3'); break; 

它显示了一个简单的握手协议的部分实现。 而subprocess“部分:

 process.on('message', ((msg)=>{ switch (msg.opcode){ //handshake case 'ACK': process.send({ opcode:'ACK', params:['ok'], ref: null }); console.log('STEP_2'); break; 

我的问题是,在控制台(记住两个进程共享所有input/输出/ errstream)我不遵守STEP_3 ; 这是由于没有孩子与家长的沟通。 任何想法,为什么这可能是?

我想你需要监听subprocess( this.sso )而不是主进程:

 //__main this.sso.on('message', ((msg)=>{ switch (msg.opcode){ case 'ACK': (msg.params[0] === 'ok') console.log('STEP_3'); break;