floca-amqp-client
Advanced tools
Comparing version 0.5.2 to 0.6.0
@@ -12,2 +12,3 @@ 'use strict' | ||
var Proback = require('proback.js') | ||
@@ -27,3 +28,2 @@ var emptyLogger = { | ||
function socketInContext ( ctx, socketType ) { | ||
console.log( socketType ) | ||
switch ( socketType ) { | ||
@@ -58,3 +58,4 @@ case 'PUBSUB': return ctx.socket( 'SUBSCRIBE' ) | ||
var Connector = function () { | ||
var Connector = function (options) { | ||
this.options = options || {} | ||
} | ||
@@ -107,2 +108,5 @@ | ||
if ( self.expAck ) | ||
socket.ack() | ||
var responses = comm.responseComms.map(function (c) { return Communication.importCommunication( c ) }) | ||
@@ -186,13 +190,19 @@ | ||
self.logger = options.logger || emptyLogger | ||
self.ctx.on('ready', function () { | ||
self.comms = {} | ||
self.outs = {} | ||
self.ins = {} | ||
self.newDivision( harconName, function (err, res) { | ||
if ( err ) return callback(err) | ||
self.collectDomains( callback ) | ||
return new Promise( function (resolve, reject) { | ||
self.ctx.on('ready', function () { | ||
self.comms = {} | ||
self.outs = {} | ||
self.ins = {} | ||
self.newDivision( harconName, function (err, res) { | ||
if ( err ) { | ||
callback(err) | ||
return reject(err) | ||
} | ||
self.collectDomains( Proback.handler(callback, resolve, reject) ) | ||
} ) | ||
} ) | ||
self.ctx.on('error', Proback.handler(callback, resolve, reject) ) | ||
} ) | ||
self.ctx.on('error', callback ) | ||
} | ||
@@ -202,16 +212,26 @@ connector.send = function ( division, event, params, options, callback ) { | ||
if ( !self.outs[ division ] ) | ||
return callback( new Error('Division is not ready yet...') ) | ||
return new Promise( function (resolve, reject) { | ||
var cb = Proback.handler( callback, resolve, reject ) | ||
division = division || self.harconName | ||
var comm = Communication.newCommunication( null, null, clerobee.generate(), self.name, division, event, params, callback ) | ||
comm.expose = true | ||
if ( options && options.terms ) | ||
comm.terms = options.terms | ||
var packet = JSON.stringify( { id: comm.id, comm: comm, callback: !!comm.callback } ) | ||
self.comms[ comm.externalId ] = callback | ||
if ( !self.outs[ division ] ) | ||
return cb( new Error('Division is not ready yet...') ) | ||
self.outs[ comm.division ].write(packet, 'utf8') | ||
division = division || self.harconName | ||
var comm = Communication.newCommunication( null, null, clerobee.generate(), self.name, division, event, params, cb ) | ||
comm.expose = true | ||
if ( options && options.terms ) | ||
comm.terms = options.terms | ||
var packet = JSON.stringify( { id: comm.id, comm: comm, callback: !!comm.callback } ) | ||
self.comms[ comm.externalId ] = cb | ||
self.outs[ comm.division ].write(packet, 'utf8') | ||
if (self.options.timeout) | ||
setTimeout( function () { | ||
if ( self.comms[ comm.externalId ] ) | ||
self.comms[ comm.externalId ]( new Error('Communication has not been received answer withing the given timeframe: ' + comm.event ) ) | ||
}, self.options.timeout ) | ||
} ) | ||
} | ||
module.exports = Connector |
{ | ||
"name": "floca-amqp-client", | ||
"version": "0.5.2", | ||
"version": "0.6.0", | ||
"description": "AMQP client for floca-based projects", | ||
@@ -28,3 +28,5 @@ "keywords": [ | ||
"clerobee": "^0.5.1", | ||
"harcon": "^3.1.1", | ||
"harcon": "^3.2.0", | ||
"isa.js": "^1.6.1", | ||
"proback.js": "^1.1.2", | ||
"rabbit.js": "^0.4.4" | ||
@@ -34,4 +36,4 @@ }, | ||
"chai": "^3.5.0", | ||
"floca": "^0.21.0", | ||
"floca-amqp": "^0.6.0", | ||
"floca": "^0.22.0", | ||
"floca-amqp": "^0.6.5", | ||
"gulp": "^3.9.1", | ||
@@ -38,0 +40,0 @@ "gulp-eslint": "^2.0.0", |
@@ -13,2 +13,3 @@ 'use strict' | ||
var socketType = 'PUSHWORKER' // PUSHWORKER PUBSUB PUSHPULL | ||
describe('Floca-amqp-client', function () { | ||
@@ -26,6 +27,9 @@ | ||
entityName: 'Support' | ||
}, | ||
amqp: { | ||
socketType: socketType | ||
} | ||
} ) | ||
connector = new Connector() | ||
connector = new Connector( { timeout: 1000 } ) | ||
@@ -37,3 +41,3 @@ var fns = [ | ||
function (cb) { | ||
connector.connect( clientName, amqpURI, flocaName, { }, cb ) | ||
connector.connect( clientName, amqpURI, flocaName, { socketType: socketType }, cb ) | ||
} | ||
@@ -45,10 +49,7 @@ ] | ||
describe('Basic tests', function () { | ||
it('Setup test', function (done) { | ||
/* | ||
connector.send( 'DivisionName', 'Entity.service', [ 'ArrayOfParameters' ], {}, function (err, res) { | ||
it('Vivid query', function (done) { | ||
connector.send( 'Floca-Client-Test', 'Inflicter.vivid', [ ], { }, function (err, res) { | ||
console.log('RES ::: ', err, res) | ||
connector.disconnect( function (err) { if (err) console.error(err) } ) | ||
done( err ) | ||
} ) | ||
*/ | ||
done() | ||
}) | ||
@@ -55,0 +56,0 @@ }) |
15614
10
385
6
+ Addedisa.js@^1.6.1
+ Addedproback.js@^1.1.2
Updatedharcon@^3.2.0