node-busmq
Version:
A high performance, highly-available and scalable, message bus and queueing system for node.js backed by Redis
47 lines (38 loc) • 1.19 kB
JavaScript
var events = require('events');
var util = require('util');
var bus = require('../lib/bus');
function BusClient(url, secret) {
events.EventEmitter.call(this);
this.url = url;
this.bus = bus.create({
federate: {
poolSize: 1,
urls: [url],
secret: secret
}
});
}
util.inherits(BusClient, events.EventEmitter);
BusClient.prototype._federateObject = function(object, cb) {
var fed = this.bus.federate(object, this.url);
fed.on('ready', function(o) {
o.fed = fed;
cb(null, o);
});
fed.on('error', cb);
};
BusClient.prototype.queue = function(name, cb) {
this._federateObject(this.bus.queue(name), cb);
};
BusClient.prototype.channel = function(name, local, remote, cb) {
this._federateObject(this.bus.channel(name, local, remote), cb);
};
BusClient.prototype.pubsub = function(name, cb) {
this._federateObject(this.bus.pubsub(name), cb);
};
BusClient.prototype.persistify = function(name, object, attributes, cb) {
this._federateObject(this.bus.persistify(name, object, attributes), cb);
};
exports = module.exports = function(url, secret) {
return new BusClient(url, secret);
};