Created
May 17, 2012 16:35
-
-
Save mvolkmann/2720026 to your computer and use it in GitHub Desktop.
RabbitMQ client code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var amqp = require('amqp'); | |
var count = 3; | |
var exchangeName = 'apto'; | |
var pubQueue = 'pong-queue'; | |
var subQueue = 'ping-queue'; | |
var connOptions = { | |
host: 'localhost', | |
port: 5672, | |
login: 'guest', | |
password: 'guest', | |
vhost: '/' | |
}; | |
var exchangeOptions = { | |
type: 'direct', // options are 'fanout', 'direct' and 'topic' | |
passive: false, // can create exchange | |
durable: false, // purged if server restarts | |
autoDelete: false // don't delete exchange when no queues are bound to it | |
}; | |
var queueOptions = { | |
passive: false, | |
durable: false, //true, | |
exclusive: false, | |
autoDelete: true //false | |
}; | |
function publish(exchange, msg) { | |
var routingKey = pubQueue; | |
exchange.publish(routingKey, msg); | |
count--; | |
} | |
var conn = amqp.createConnection(connOptions); | |
conn.on('ready', function () { | |
console.log('connection is ready'); | |
conn.exchange(exchangeName, exchangeOptions, function (exchange) { | |
console.log('exchange is ready'); | |
//exchange.destroy(); // must destroy and recreate to change type | |
//conn.queue(subQueue, queueOptions, function (q) { | |
conn.queue(subQueue, function (q) { | |
console.log('got', q.name); | |
q.bind(exchange, subQueue, subQueue); | |
console.log('bound queue to exchange'); | |
q.subscribe(function (msg) { | |
console.log('got', msg.data.toString()); | |
if (count === 0) { | |
conn.end(); | |
} else { | |
publish(exchange, 'pong'); | |
} | |
}); | |
}); | |
conn.end(); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment