indutny / sticky-session

Sticky session balancer based on a `cluster` module
964 stars 99 forks source link

process.send / master.on("message" not work #51

Open tablecell opened 7 years ago

tablecell commented 7 years ago

test code

var cluster = require('cluster');  
var sticky = require('sticky-session');
const PORT=5000;

var totalReqs = 0;
var localReq = 0;

var server = require('http').createServer(function(req, res) {
    res.end(process.pid+ ' worker: ' + cluster.worker.id);
    process.send(" worker  " + process.pid + "  local is " + localReq + "  sum is " + totalReqs);
});

if (!sticky.listen(server, PORT)) {
    // Master code
    if (cluster.isMaster) {
        Object.keys(cluster.workers).forEach(function(i){
            cluster.workers[i].on('message', function(msg) {
                totalReqs++;
                console.log(totalReqs);
            });
        });
    }
    server.once('listening', function() {
        console.log('server started on  port',PORT);
    });
} else {
    // Worker code
    console.log(process.pid);
}