2017-01-09 54 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' }); 
    });