Commit 169bf505 authored by project's avatar project

--no commit message

--no commit message
parent 6d8b509d
{ {
"url" : "amqp://test:test@lab1.igridproject.info" "type" : "rabbitmq",
"url" : "amqp://bigmaster.igridproject.info"
} }
var amqp = require('amqplib/callback_api');
function RPCCaller(config)
{
this.config = config;
this.url = config.url;
this.name = config.name || "rpc_queue";
}
RPCCaller.prototype.call = function(req,cb){
var self = this;
amqp.connect(self.url, function(err, conn) {
conn.createChannel(function(err, ch) {
ch.assertQueue('', {exclusive: true}, function(err, q) {
var corr = generateUuid();
ch.consume(q.queue, function(msg) {
if (msg.properties.correlationId == corr) {
var resp = JSON.parse(msg.content.toString());
conn.close();
cb(null,resp);
}
}, {noAck: true});
ch.sendToQueue(self.name,
new Buffer(JSON.stringify(req)),
{ correlationId: corr, replyTo: q.queue });
});
});
});
function generateUuid() {
return Math.random().toString() +
Math.random().toString() +
Math.random().toString();
}
}
module.exports = RPCCaller;
var amqp = require('amqplib/callback_api'); var ctx = require('../context');
var amqp_cfg = ctx.config.amqp;
var args = process.argv.slice(2);
var RPCCaller = ctx.getLib('lib/amqp/rpccaller');
if (args.length == 0) {
console.log("Usage: rpc_client.js num"); var caller = new RPCCaller({
process.exit(1); url : amqp_cfg.url
} });
amqp.connect('amqp://bigmaster.igridproject.info', function(err, conn) {
conn.createChannel(function(err, ch) { caller.call({t:10000,d:'hello'},function(err,resp){
ch.assertQueue('', {exclusive: true}, function(err, q) { console.log(resp);
var corr = generateUuid();
var num = parseInt(args[0]);
console.log(' [x] Requesting fib(%d)', num);
ch.consume(q.queue, function(msg) {
if (msg.properties.correlationId == corr) {
console.log(' [.] Got %s', msg.content.toString());
setTimeout(function() { conn.close(); process.exit(0) }, 500);
}
}, {noAck: true});
ch.sendToQueue('rpc_queue',
new Buffer(num.toString()),
{ correlationId: corr, replyTo: q.queue });
});
});
}); });
function generateUuid() {
return Math.random().toString() +
Math.random().toString() +
Math.random().toString();
} // var amqp = require('amqplib/callback_api');
//
// var args = process.argv.slice(2);
//
// if (args.length == 0) {
// console.log("Usage: rpc_client.js num");
// process.exit(1);
// }
//
// amqp.connect('amqp://bigmaster.igridproject.info', function(err, conn) {
// conn.createChannel(function(err, ch) {
// ch.assertQueue('', {exclusive: true}, function(err, q) {
// var corr = generateUuid();
// var num = parseInt(args[0]);
//
// console.log(' [x] Requesting fib(%d)', num);
//
// ch.consume(q.queue, function(msg) {
// if (msg.properties.correlationId == corr) {
// console.log(' [.] Got %s', msg.content.toString());
// setTimeout(function() { conn.close(); process.exit(0) }, 500);
// }
// }, {noAck: true});
//
// ch.sendToQueue('rpc_queue',
// new Buffer(num.toString()),
// { correlationId: corr, replyTo: q.queue });
// });
// });
// });
//
// function generateUuid() {
// return Math.random().toString() +
// Math.random().toString() +
// Math.random().toString();
// }
...@@ -8,10 +8,10 @@ var server = new rpcserver({ ...@@ -8,10 +8,10 @@ var server = new rpcserver({
}); });
server.set_remote_function(function(req,callback){ server.set_remote_function(function(req,callback){
var n = parseInt(req); var n = parseInt(req.t);
console.log('REQUEST ' + req); console.log('REQUEST ' + req);
setTimeout(function(){ setTimeout(function(){
callback(null,n); callback(null,{'time':n,'data':req.d});
},n); },n);
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment