UNPKG

brokowski

Version:

RESTful publish/subscribe toolkit including broker, publisher and subscriber

52 lines (43 loc) 1.14 kB
var cluster = require('cluster') , numCPUs = require('os').cpus().length , BrokowskiServer = require('./brokowskiServer') , brokowskiServer = require('./brokowskiServer'); module.exports = BrokowskiCluster; /** * Constructor. * * options: { * port: 6000, * subscribers: [{ * event: 'my-event', * method: 'GET', * hostname: '192.168.0.100', * port: 6002, * path: 'my-service' * }] * } */ function BrokowskiCluster(options) { this.options = require('node.extend')({}, options); if(this.options.subscribers) { for(var i = 0, len = this.options.subscribers.length; i < len; i++) { routes.subscribe(this.options.subscribers[i].event, this.options.subscribers[i]); } } } /** * Start HTTP server. */ BrokowskiCluster.prototype.start = function() { brokowskiServer = new BrokowskiServer(this.options); if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on("exit", function(worker, code, signal) { cluster.fork(); }); } else { brokowskiServer.start(); } }