父进程
const child_process = require('child_process');
const exec = child_process.exec;
var child = child_process.fork('C:\\Users\\Tester\\Desktop\\nodeJS\\child_process\\child\\main.js');
// receive child process message
child.on('message', (data) => {
if(1 == data.onLoad){
child.send({
'method': 'startServer',
'host': '127.0.0.1',
'port': 3003,
'targetName': 'getList',
'returnValue': 3
});
}
else{
console.log(data);
}
});
// child process exit
child.on('exit', (data) => {
console.log(data);
});
子进程
const comm = require('../common/communication.js');
const handler = require('./handler.js');
var targetName;
var returnValue;
process.on('message', (data) => {
if(data.method && 'startServer' == data.method){
targetName = data.targetName;
returnValue = data.returnValue;
comm.createServer(data.host, data.port, {
'onListen': function(host, port){
console.log('Master server started, Host %s, Port %s', host, port);
},
'onData': function(socket, data){
handler.response(socket, data);
},
'onError': function(err){
console.log(err);
}
});
}
else if(data.method == targetName){
process.send(returnValue);
process.exit(0);
}
else{
console.log(data);
}
});
process.send({'onLoad': 1});