Node.js使用产生两个子进程,然后两个子进程如何交换?
问题描述:
我有一个名为“A”的ELF程序,“A”是一个tcp服务器,我有一个名为“B”的ELF程序,“B”是一个tcp客户端。当“B”开始运行时,如果服务器准备就绪,它将向服务器发送msg信息,无需判断。Node.js使用产生两个子进程,然后两个子进程如何交换?
现在我必须使用Node.js来运行“A”和“B”作为两个子进程,我怎样才能让“A”必须早于“B”运行?
我IMPL这样的:
socket.on('xxx', function() {
var A = spawn("A", ...);
...
var B = spawn("B", ...);
setTimeout(B.sendToA, 500);
...
});
请问有什么好的想法?
谢谢你的帮助!
答
由于您提到服务器输出启动时的一些信息,因此您可以监听此信息,然后在启动客户端时启动它。
喜欢的东西:
socket.on('xxx', function() {
var A = spawn("A", ...);
A.stdin.write("yyy");
A.stdout.on('data', function(e) {
if(e.toString() === "yyy") {
var B = spawn("B", ...);
B.sendToA(); //I'm guessing this is a pseudo-method?
}
});
});
是否'A'输出的任何数据上的启动? – 2015-03-19 13:13:18
是的,当A开始时,它输出一些信息,然后在readline上阻塞,等待nodejs调用A.stdin.write(“yyy”)。读取“yyy”后,A将启动服务器功能,并输出信息,等待客户端连接。 – zwb 2015-03-19 13:19:47