我是一个尝试在我的nodejs代码上实现RabbitMQ的新用户。我已经提到了使用它的几个例子,但仍然不清楚如何使用它的实时示例。我正尝试使用Rabbit MQ从队列中读取消息。我如何从nodejs的队列中读取消息?如何在nodejs上使用来自RabbitMQ的消息
在此先感谢!
我是一个尝试在我的nodejs代码上实现RabbitMQ的新用户。我已经提到了使用它的几个例子,但仍然不清楚如何使用它的实时示例。我正尝试使用Rabbit MQ从队列中读取消息。我如何从nodejs的队列中读取消息?如何在nodejs上使用来自RabbitMQ的消息
在此先感谢!
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);
});
这是我正在尝试使用的模块,但这只是一个基本设置。我正在寻找更多的细节,比如如何添加一个监听器并让它监听队列来读取这些消息。 – user6860877
他们的文档非常广泛。 https://www.npmjs.com/package/amqp#queuesubscribeoptions-listener – brandonscript
官方的RabbitMQ教程提供基本的例子场景,使用代码,使用Node.js和amqp.node
库(又名“amqplib”)。我建议开始有:
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)
这是一个超级简单的外观,在幕后利用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' });
});
在网站上有javascript教程。你甚至检查过他们吗? https://www.rabbitmq.com/getstarted.html – djones
@djones是的,我做到了! – user6860877