CNode

如何实现子进程之间的通信?

问答
Iisky0824发布于9 年前最后回复9 年前8 回复4593 浏览0 收藏

父进程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!' );

查看回复

回复 (7)

I
isky0824#2·9 年前

@Mwangzhi ?

K
kyriosli#3·9 年前

node的ipc机制其实还是用了管道,其实管道效率很低的,还不如开个socket。当然了非用管道的话不是没有办法,但是用不了node的ipc api

X
x770158999#4·9 年前

b->a->c 都发给父进程带上target

I
isky0824#5·9 年前
引用 x770158999b a c 都发给父进程带上target

@x770158999 理论上可以,但不是最优解。

H
hyj1991#6·9 年前

Egg里面做了一套这样的机制,其实就是通过父进程做转发

参与回复
登录后即可参与回复。登录