有谁知道如何从用 Node.js 编写的客户端向 WSO2 消息代理发送消息?
问问题
620 次
2 回答
3
由于 WSO2 消息代理支持 AMQP 协议,您应该能够使用任何 NodeJS AMQP 0-9-1 客户端库来执行此操作。其中一些例子是,
- amqp.node:https ://github.com/squaremo/amqp.node
- 节点-amqp:https ://github.com/postwait/node-amqp
以下使用 amqp.node 库编写的示例代码可用作 NodeJS 客户端来发布或接收来自 WSO2 消息代理的消息。您必须使用该格式amqp://{username}:{password}@{hostname}:{port}
来建立与 Message Broker 的连接。所有消息将作为字节消息发送,但可以作为文本接收。
“amqp.node”库提供了丰富的API,也可以用于其他队列操作 MB。
// 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);
于 2013-07-28T11:07:28.613 回答
0
WSO2 消息代理支持高级消息队列协议 (AMQP) v0.91。
我自己没有尝试过,但您应该能够使用 Node.js 客户端连接 WSO2 MB。
请参阅GitHub 上的amqp.node项目。
您可以使用 AMQP 连接 URL 连接 WSO2 MB。请参阅“使用队列发送和接收消息”文档以了解如何指定 AMQP 连接 URL 以连接 WSO2 MB。
我希望这有帮助!
谢谢!
于 2013-07-27T04:48:21.810 回答