Node.js で記述されたクライアントから WSO2 メッセージ ブローカーにメッセージを送信する方法を知っている人はいますか?
2 に答える
WSO2 Message Broker は AMQP プロトコルをサポートしているため、任意の NodeJS AMQP 0-9-1 クライアント ライブラリでこれを実行できるはずです。いくつかの例は、
- amqp.node : https://github.com/squaremo/amqp.node
- node-amqp : https://github.com/postwait/node-amqp
amqp.node ライブラリを使用して記述された次のサンプル コードは、NodeJS クライアントとして使用して、WSO2 Message Broker からメッセージを発行または受信できます。amqp://{username}:{password}@{hostname}:{port}
Message Broker との接続を確立するには、この形式を使用する必要があります。すべてのメッセージはバイト メッセージとして送信されますが、テキストとして受信できます。
「amqp.node」ライブラリーは、他のキュー操作 MB にも使用できる豊富なAPIを提供します。
// Sample Publisher
var queuename = 'MyQueue';
var openConn = require('amqplib').connect('amqp://admin:admin@localhost: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:admin@localhost: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);
WSO2 メッセージ ブローカは、Advanced Message Queuing Protocol (AMQP) v0.91 をサポートしています。
私はこれを自分で試したことはありませんが、Node.js クライアントを使用して WSO2 MB に接続できるはずです。
GitHub でamqp.nodeプロジェクトを参照してください。
AMQP 接続 URL を使用して WSO2 MB に接続できます。AMQP 接続 URL を指定して WSO2 MB に接続する方法については、「キューを使用したメッセージの送受信」ドキュメントを参照してください。
これが役立つことを願っています!
ありがとう!