2017-12-07 29 views
0

Node.jsのプロセス間通信Faulters以下の親プロセスのコードが与えられ

//SSO 
this.sso = fork('./app/utils/SSOproxy.js', [], { 
    stdio: [0, 1, 2, 'ipc'] 
}); 
console.log(process); 
console.log(this.sso); 

//__handshake 
this.sso.send({ 
    opcode: 'ACK', 
    params: [], 
    ref: null 
}); 
console.log('STEP_1'); 
process.prependOnceListener('message', ((msg) => { 
    if (msg.status) { 
    if ((msg.opcode === 'ACK') && (msg.params[0] === 'ok')) { 
     console.log('STEP_3'); 
    } 
    } 
})); 

//__e.o.handshake 

と子プロセス(SSOproxy.js)コード:観測されたログで

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

- STEP_1 STEP_2が続きますが、STEP_3は見えません。なぜなら、私の人生は子供/親のための二重通信を得る方法を理解できないからです。どのように同じを達成するには?

+0

誰がこれを答えることはできませんか? –

答えて

2

prependOnceListenerにはmsg.statusの条件がありますが、SSOproxy.jsコードのどこにも表示されません。

true

を評価することはありません場合、これはあなたを意味し、あなたのメッセージにstatusを追加してみてくださいことができます:

process.send({ 
    opcode:'ACK', 
    params:['ok'], 
    ref: null, 
    status: 'test1234' 
}); 
+0

ありがとうございました。 :) –

関連する問題