Trustworthy and easy to use RabbitMQ client, supports auto-reconnect and graceful stop.
import {
Connection,
Publisher,
} from 'trusty-rabbit';
const connection = new Connection({
uri: 'amqp://user:password@127.0.0.1:5672/my_vhost',
reconnect: async () => {
await sleep(1000);
return true;
},
});
const publisher = new Publisher(connection, {
exchange: {
name: exchangeName,
},
});
await publisher.publish('messageID', 'key.0', {
value: 'content',
});
setTimeout(async () => {
await publisher.close(true);
}, 2000);
import {
Connection,
Consumer,
} from 'trusty-rabbit';
const connection = new Connection({
uri: 'amqp://user:password@127.0.0.1:5672/my_vhost',
reconnect: async () => {
await sleep(1000);
return true;
},
});
const consumer = new Consumer(connection, {
queue,
prefetch: 1,
});
await consumer.consume(async (messageID: string, content: any, message) => {
console.log(`Message ID: ${messageID}, Content: ${content.value}`);
console.log(`Buffer content:`, message.content);
return true;
});
setTimeout(async () => {
await consumer.close(true);
}, 2000);