@korban/amqp-messenger

0.0.5 • Public • Published

AMQP Messenger

Переменные окружения

AMQP_SERVER=amqp://server_1:5672,amqp://server_2:5672
AMQP_EXCHANGE=myExchange

AMQPMessenger

const QM = await new AMQPMessenger({
  servers: ['amqp://server_1:5672', 'amqp://server_2:5672'],  // Если не указан, то будет использована env.AMQP_SERVER
  exchange: 'myExchange', // Если не указан, то будет использована env.AMQP_EXCHANGE
  ttl: 10, // Время ожидания ответа (по умолчанию) в вызовах call(...)
  prefetch: 1
})

Пример использования

server.js

const QM = require('amqp-messenger');

const pingPong = data => {
  console.log('ping-pong', data.content.toString());
};
const main = async function () {
  const Messenger = await new QM();
  Messenger.events({
    ping: pingPong
  });
  
  Messenger.methods({
    add( msgJson, msg ) {
      return msgJson[0] + msgJson[1];
    },
    div( msgJson, msg ) {
      return new Promise(( resolve, reject ) => {
        return resolve(msgJson[0] / msgJson[1]);
      });
    }
  });
};

main()
  .then(() => {
    console.log('Messenger started');
  })
  .catch(console.error);

client.js

const QM = require('amqp-messenger');

const main = async function () {
  const Messenger = await new QM();
  
  // simple send message
  Messenger.send('ping', new Date());
  
  Messenger.call('add', [2, 3])
    .then(res1 => {
      console.log('add', res1);
    })
    .catch(console.error);
  
  const res2 = await Messenger.call('div', [4, 6]);
  console.log('Async div:', res2);
};

main()
  .then(() => {
  })
  .catch(console.error);

Readme

Keywords

Package Sidebar

Install

npm i @korban/amqp-messenger

Weekly Downloads

1

Version

0.0.5

License

ISC

Unpacked Size

9.27 kB

Total Files

8

Last publish

Collaborators

  • korban