2017-12-07 28 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 코드에는 아무 것도 표시되지 않습니다.

이 의미 당신의 당신이이 status 메시지에 추가하려고 할 수 true

을 평가하지 않습니다 경우 :

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

감사합니다. :) –