2013-07-26 141 views

回答

0

WSO2 Message Broker支持高級消息隊列協議(AMQP)v0.91。

我還沒有嘗試過這個,但你應該可以使用Node.js客戶端連接WSO2 MB。

請參閱amqp.node項目在GitHub。

您可以使用AMQP連接URL與WSO2 MB連接。請參閱「Sending and Receiving Messages Using Queues」文檔以瞭解如何指定AMQP連接URL以連接WSO2 MB。

我希望這有助於!

謝謝!

3

由於WSO2 Message Broker支持AMQP協議,因此您應該可以使用任何NodeJS AMQP 0-9-1客戶端庫執行此操作。一些例子是,

  1. amqp.node:https://github.com/squaremo/amqp.node
  2. 節點AMQP:https://github.com/postwait/node-amqp

以下示例代碼,使用amqp.node庫編寫可被用作一個客戶端的NodeJS到發佈或接收來自WSO2 Message Broker的消息。您必須使用格式amqp://{username}:{password}@{hostname}:{port}與Message Broker建立連接。所有消息將作爲字節消息發送,但可以作爲文本接收。

'amqp.node'庫提供了一個豐富的API,它也可以用於其他隊列操作MB。

// Sample Publisher 
var queuename = 'MyQueue'; 
var openConn = require('amqplib').connect('amqp://admin:[email protected]:5672'); // amqp://{username}:{password}@{hostname}:{port} is default AMQP connection URL of WSO2 MB 
openConn.then(function(conn) { 
    var ok = conn.createChannel(); 
    ok = ok.then(function(channel) { 
    channel.assertQueue(queuename); 
    channel.sendToQueue(queuename, new Buffer('New Message')); 
    }); 
    return ok; 
}).then(null, console.warn); 

消費者客戶端代碼如下。

// Sample Consumer 
var queuename = 'MyQueue'; 
var openConn = require('amqplib').connect('amqp://admin:[email protected]:5672'); // amqp://{username}:{password}@{hostname}:{port} is default AMQP connection URL of WSO2 MB 
openConn.then(function(conn) { 
    var ok = conn.createChannel(); 
    ok = ok.then(function(channel) { 
    channel.assertQueue(queuename); 
    channel.consume(queuename, function(msg) { 
     console.log(msg.content.toString()); 
     channel.ack(msg); 
    }); 
    }); 
    return ok; 
}).then(null, console.warn); 
相關問題