2017-01-09 56 views
1

我是一个尝试在我的nodejs代码上实现RabbitMQ的新用户。我已经提到了使用它的几个例子,但仍然不清楚如何使用它的实时示例。我正尝试使用Rabbit MQ从队列中读取消息。我如何从nodejs的队列中读取消息?如何在nodejs上使用来自RabbitMQ的消息

在此先感谢!

+0

在网站上有javascript教程。你甚至检查过他们吗? https://www.rabbitmq.com/getstarted.html – djones

+0

@djones是的,我做到了! – user6860877

回答

1

Node.js拥有大量的开源社区,对npmjs.org有所贡献。有机会,有人已经建立了一个模块来做你想做的事情。

在你的情况,https://www.npmjs.com/package/amqp

queue.subscribe的文档([选项]听众)

q.subscribe(function (message, headers, deliveryInfo, messageObject) { 
    console.log('Got a message with routing key ' + deliveryInfo.routingKey); 
}); 

+0

这是我正在尝试使用的模块,但这只是一个基本设置。我正在寻找更多的细节,比如如何添加一个监听器并让它监听队列来读取这些消息。 – user6860877

+1

他们的文档非常广泛。 https://www.npmjs.com/package/amqp#queuesubscribeoptions-listener – brandonscript

0

如果你仍然在研究这个,我们刚刚在Node:BunnyBus(www。 github.com/xogroup/bunnybus)

这是一个超级简单的外观,在幕后利用amqplib

const BunnyBus = require('bunnybus'); 
const bunnyBus = new BunnyBus({ 
    protocol : process.env.RABBIT_PROTOCOL, 
    user  : process.env.RABBIT_USER, 
    password : process.env.RABBIT_PASSWORD, 
    server : process.env.RABBIT_SERVER, 
    port  : process.env.RABBIT_PORT, 
    vhost : process.env.RABBIT_V_HOST 
}); 

const messageHandler = { 
    'event-name': (message, acknowledge, reject, requeue) => { 
     // do your work with the message here 

     return acknowledge(); 
    } 
}; 

// This will auto-connect and create the queue and bindings if they do not exist 
bunnyBus.subscribe('queueName', messageHandler) 
    .then(() => { 
     const myMessage = {/*your contents here*/}; 
     return bunnyBus.publish(myMessage, { routeKey: 'event-name' }); 
    });