有没有人知道如何从Node.js编写的客户端向WSO2 Message Broker发送消息?
答案 0 :(得分:3)
由于WSO2 Message Broker支持AMQP协议,您应该可以使用任何NodeJS AMQP 0-9-1客户端库执行此操作。一些例子是,
以下使用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: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);
答案 1 :(得分:0)
WSO2 Message Broker支持高级消息队列协议(AMQP)v0.91。
我自己没有尝试过,但您应该可以使用Node.js客户端连接WSO2 MB。
请参阅GitHub上的amqp.node项目。
您可以使用AMQP连接URL连接WSO2 MB。请参阅“Sending and Receiving Messages Using Queues”文档,了解如何指定AMQP连接URL以与WSO2 MB连接。
我希望这有帮助!
谢谢!