BRIDGE API - RabbitMQ
© 2024 Napse. Todos los derechos reservados.
CONTENIDO
Se habilita la funcionalidad de mensajería externa con RabbitMQ
- 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