如何从Node.js客户端向WSO2 Message Broker发送消息

时间:2013-07-26 04:09:31

标签: node.js wso2

有没有人知道如何从Node.js编写的客户端向WSO2 Message Broker发送消息?

2 个答案:

答案 0 :(得分:3)

由于WSO2 Message Broker支持AMQP协议,您应该可以使用任何NodeJS AMQP 0-9-1客户端库执行此操作。一些例子是,

  1. amqp.node:https://github.com/squaremo/amqp.node
  2. node-amqp:https://github.com/postwait/node-amqp
  3. 以下使用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连接。

我希望这有帮助!

谢谢!