Uso básico de rabbitmq con NodeJS

Beimer Campos - 09 Aug 2023

El uso básico que podemos darle a rabbit es el publicador y consumidor de mensajes encolados. A continuación veremos un ejemplo de como hacerlo.

Primero necesitas instalar la librería de mqplib ejecutando:

npm i mqplib

Luego inicializa las variables y crea la conexion

RABBIT_URL = "amqps://[user]:[password]@[url]/[project]";

const exchange = "bots_managements";
const routingKey = "test.core.sms.management";
const queue = "my_queue";

// NOTE: creación de la conexión
let rabbitConn = await amqp.connect(env.RABBIT_URL);
let channel = await rabbitConn.createChannel();

Publicación de un mensaje

Cuando se desea publicar directamente a una cola se debe usar la función sendToQueue y cuando quieres enviarla a un exchange usa la función exchange.

// NOTE: send to exchange
const published = channel.publish(
  exchange,
  routingKey,
  Buffer.from(JSON.stringify(queueMessage))
);

// NOTE: send to queue
const published = channel.sendToQueue(
  queue,
  Buffer.from(JSON.stringify(queueMessage))
);

Consumir mensajes

channel.consume(queue, function (msg) {
  const body = msg.content.toString();
});

Cerrar conexión

await channel.close();
await rabbitConn.close();

Aquí tienes el enlace al codio en github.