父进程A创建了子进程B、C,我知道父子进程之间通信很容易,直接发消息就可以,但是子进程B和C之间如何直接通信呢?(不考虑子进程之间直接通过socekt发送消息) //A.js var child= require( ‘child_process’ ); var B = child.fork( ‘B.js’ ); var C = child.fork( ‘C.js’ ); //监听子进程B的消息 B.on( ‘message’, function( data ) { console.log( ‘A收到B的消息:’ + data ); });
//父进程A发送消息给子进程B B.send( ‘Hello world from A!’ );
//监听子进程C的消息 C.on( ‘message’, function( data ) { console.log( ‘A收到C的消息:’ + data ); });
//父进程A发送消息给子进程C C.send( ‘Hello world from A!’ );
b->a->c 都发给父进程带上target
@x770158999 理论上可以,但不是最优解。
Egg里面做了一套这样的机制,其实就是通过父进程做转发
@hyj1991 还有没有更好的办法?
node的ipc机制其实还是用了管道,其实管道效率很低的,还不如开个socket。当然了非用管道的话不是没有办法,但是用不了node的ipc api
@kyriosli 目前也只能这样了。