/egg-amqplib

Amqp plugin for egg with amqplib

Primary LanguageJavaScriptMIT LicenseMIT

egg-amqplib

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Amqp plugin for egg with amqplib

Install

$ npm i egg-amqplib --save

Usage

// {app_root}/config/plugin.js
exports.amqplib = {
  enable: true,
  package: 'egg-amqplib',
};

Configuration

// {app_root}/config/config.default.js
exports.amqplib = {
  client: {
    // url: 'amqp://localhost',
    connectOptions: {
      protocol: 'amqp',
      hostname: 'localhost',
      port: 5672,
      username: 'guest',
      password: 'guest',
      locale: 'en_US',
      frameMax: 0,
      heartbeat: 0,
      vhost: '/',
    },
    // socketOptions: {
    //   cert: certificateAsBuffer, // client cert
    //   key: privateKeyAsBuffer, // client key
    //   passphrase: 'MySecretPassword', // passphrase for key
    //   ca: [caCertAsBuffer], // array of trusted CA certs
    // },
  },
};

see config/config.default.js for more detail.

Example

const queueName = 'test';

// Publisher
const msg = 'test';
const ch = await this.app.amqplib.createChannel();
await ch.assertQueue(queueName, { durable: false });
const ok = await ch.sendToQueue(queueName, Buffer.from(msg));

// Consumer
await ch.assertQueue(queueName, { durable: false });
const msg = await new Promise(resolve => ch.consume(queueName, msg => resolve(msg)));

if (msg !== null) {
  ch.ack(msg);
}

await ch.close();

Questions & Suggestions

Please open an issue here.

License

MIT