This module allows to use a proxy object that abstracts all the
message passing required to communicate between worker processes and master in
a cluster app.
- Source:
Example
var cluster = require('cluster');
var clusterproxy = require('cluster-proxy');
if (cluster.isMaster) {
var delegate = {
a : 42,
f : function(a, b) {
return a + b;
},
g : function(a, cb) {
cb(null, a*2, a*a);
}
};
var master = clusterproxy.master({delegate: delegate});
master.connectWorker(cluster.fork());
} else {
var proxy = clusterproxy.worker();
proxy.get('a', console.log);
proxy.invoke('f', 1, 2, console.log);
proxy.invokeAsync('g',//method name
1, //callback index in the invoked method
21,//argument for the invoked method
function(proxyErr, delegateErr, double, square) {//callback
if(!proxyErr && !delegateErr) {
console.log('double:', double, 'square:', square);
} else {
console.log('error:', proxyErr || delegateErr);
}
});
}