UNPKG

amqplib

Version:

An AMQP 0-9-1 (e.g., RabbitMQ) library and client.

40 lines (32 loc) 1.18 kB
#!/usr/bin/env node const amqp = require('../..'); const { basename } = require('path'); const exchange = 'topic_logs'; const bindingKeys = process.argv.slice(2); if (bindingKeys.length < 1) { console.log('Usage: %s pattern [pattern...]', basename(process.argv[1])); process.exit(1); } (async () => { try { const connection = await amqp.connect('amqp://localhost'); const channel = await connection.createChannel(); process.once('SIGINT', async () => { await channel.close(); await connection.close(); }); await channel.assertExchange(exchange, 'topic', { durable: false }); const { queue } = await channel.assertQueue('', { exclusive: true }); await Promise.all(bindingKeys.map(async (bindingKey) => { await channel.bindQueue(queue, exchange, bindingKey); })); await channel.consume(queue, (message) => { if (message) console.log(" [x] %s:'%s'", message.fields.routingKey, message.content.toString()); else console.warn(' [x] Consumer cancelled'); }, { noAck: true }); console.log(' [*] Waiting for logs. To exit press CTRL+C.'); } catch (err) { console.warn(err); } })();