Cluster Node.js

master.js

var http = require (‘http’),
numCPUs = require (‘os’). cpus (). length;
cp = require (‘child_process’),
net = require (‘net’);
trabalhadores var = [];
para (var i = 0; i <numCPUs; i ++) {
workers.push (cp.fork (‘app.js’, [‘normal’]));
}

net.createServer (função (ões) {
s.pause ();
var trabalhador = trabalhador.shift ();
trabalhador.send (‘c’, s);
trabalhadores.push (trabalhador);
}). ouvir (80);

worker.js
var http = require (‘http’),
cp = require (‘child_process’),
net = require (‘net’);
var server = http.createServer (function (req, res) {
res.writeHead (200, {“Content-Type”: “text / plain”, “Connection”: “close”});
res.end (“olá, mundo “);
});
console.log (“webServer iniciado em” + process.pid);
process.on (“mensagem”, função (msg, socket) {
process.nextTick (function () {
if (msg == ‘c’ && socket) {
socket.readable = socket.writable = true;
socket.resume () ;
servidor.conexões ++;
soquete. servidor = servidor;
server.emit (“conexão”, soquete);
socket.emit (“conectar”);
}
});
});