BRIDGE API - RabbitMQ



© 2024 Napse. Todos los derechos reservados.

CONTENIDO



Se habilita la funcionalidad de mensajería externa con RabbitMQ 



  1. El servicio se invoca de la siguiente manera: amqp://[user]:[pass]@[IP]


Enviar un mensaje a la cola

El siguiente ejemplo esta hecho en Javascript (NodeJS). Desde https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html se pueden ver otros ejemplos en diferentes lenguajes de programación

Enviar un mensaje
#!/usr/bin/env node

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://[user]:[pass]@localhost', function(error0, connection) {
  if (error0) {
    throw error0;
  }
  connection.createChannel(function(error1, channel) {
    if (error1) {
      throw error1;
    }
    var queue = 'news';
    var msg = JSON.stringify({name:'Noticia', description:'Nueva noticia', version:100});

    channel.assertQueue(queue, {
      durable: false
    });

    channel.sendToQueue(queue, Buffer.from(msg));
    console.log(" [x] Sent %s", msg);
  });
});


  • amqp://[user]:[pass]@localhost hay que reemplazarlo por las credenciales e IP correspondientes

  • var queue es el nombre del canal donde publicar
  • var mgs es el mensaje a enviar


Consumir mensajes de la cola

Consumir mensajes
#!/usr/bin/env node
var amqp = require('amqplib/callback_api');
amqp.connect('amqp://[user]:[pass]@localhost', function(error0, connection) {
    if (error0) {
        throw error0;
    }
    connection.createChannel(function(error1, channel) {
        if (error1) {
            throw error1;
        }
        var queue = 'news';
        channel.assertQueue(queue, {
            durable: false
        });
        console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", queue);
        channel.consume(queue, function(msg) {
            console.log(" [x] Received %s", JSON.parse(msg.content.toString()));
        }, {
            noAck: true

        });
    });
});


  • amqp://[user]:[pass]@localhost hay que reemplazarlo por las credenciales e IP correspondientes

  • var queue es el nombre del canal donde publicar
  • mgs es el mensaje recibido
  • noAck es para informar que el mensaje se recibio y no se espera confirmación de la acción. Esto quita el mensaje de la cola




  • Sem rótulos