如何在nodejs上使用来自RabbitMQ的消息

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

提前致谢!

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

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

queue.subscribe([options,] listener)的文档:

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

😉

官方的rabbitmq教程提供了基本场景的例子,包括工作代码,使用Node.js和amqp.node库(又名“amqplib”)。 我build议从那里开始:

https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html

我还有一个完整的培训指南,从头开始,用RabbitMQ和Node.js。 重点是推动“微服务”,但材料的核心是学习RabbitMQ,首先: https : //sub.watchmecode.net/guides/microservices-with-rabbitmq/

如果您仍在研究这个问题,我们刚刚在Node:BunnyBus(www.github.com/xogroup/bunnybus)上发布了RabbitMQ的OSS库。

这是一个超级简单的外观,在幕后利用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' }); });