Node子進程

父進程


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});

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章