我是一個嘗試在我的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