You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
require('./harness').run(); |
|
|
|
var recvCount = 0; |
|
var body = "hello world"; |
|
|
|
connection.addListener('ready', function () { |
|
puts("connected to " + connection.serverProperties.product); |
|
|
|
var q = connection.queue('node-default-exchange', function() { |
|
q.bind("#"); // bind to queue |
|
|
|
q.on('queueBindOk', function() { // wait until queue is bound |
|
q.on('basicConsumeOk', function () { // wait until consumer is registered |
|
puts("publishing 2 msg messages"); |
|
connection.publish('message.msg1', {two:2, one:1}); |
|
connection.publish('message.msg2', {foo:'bar', hello: 'world'}); |
|
|
|
setTimeout(function () { |
|
// wait one second to receive the message, then quit |
|
connection.end(); |
|
}, 1000); |
|
}); |
|
|
|
q.subscribe({ routingKeyInPayload: true }, |
|
function (msg) { // register consumer |
|
recvCount++; |
|
switch (msg._routingKey) { |
|
case 'message.msg1': |
|
assert.equal(1, msg.one); |
|
assert.equal(2, msg.two); |
|
break; |
|
|
|
case 'message.msg2': |
|
assert.equal('world', msg.hello); |
|
assert.equal('bar', msg.foo); |
|
break; |
|
|
|
default: |
|
throw new Error('unexpected routing key: ' + msg._routingKey); |
|
} |
|
}) |
|
}); |
|
}); |
|
|
|
}); |
|
|
|
|
|
process.addListener('exit', function () { |
|
assert.equal(2, recvCount); |
|
});
|
|
|