@coolgk/amqp
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.5 • Public • Published

    @coolgk/amqp

    a javascript / typescript module

    npm install @coolgk/amqp

    a simple RabbitMQ (amqp wrapper) class for publishing and consuming messages

    Report bugs here: https://github.com/coolgk/node-utils/issues

    Examples

    import { Amqp } from '@coolgk/amqp';
    // OR
    // const { Amqp } = require('@coolgk/amqp');
     
    const amqp = new Amqp({
        url: 'amqp://localhost/vhost'
    });
     
    const message = {
        a: 1,
        b: 'b'
    };
     
    // CONSUMER MUST BE STARTED FIRST BEFORE PUSHLISHING ANY MESSAGE
     
    // consumer.js
    // consume message and return (send) a response back to publisher
    amqp.consume(({rawMessage, message}) => {
        console.log('consumer received', message); // consumer received ignore response
                                                   // consumer received { a: 1, b: 'b' }
        return {
            response: 'response message'
        }
    });
     
    // publisher.js
    // publish a message, no response from consumer
    amqp.publish('ignore response');
     
    // publish a message and handle response from consumer
    amqp.publish(message, ({rawResponseMessage, responseMessage}) => {
        console.log('response from consumer', responseMessage); // response from consumer { response: 'response message' }
    });
     
     
    // example to add:
    // consume from (multiple) routes
    // round robin consumers
    // direct route + a catch all consumer
     

    Amqp

    Kind: global class

    new Amqp(options)

    Param Type Description
    options object
    options.url string connection string e.g. amqp://localhost
    [options.sslPem] string pem file path
    [options.sslCa] string sslCa file path
    [options.sslPass] string password

    amqp.closeConnection() ⇒ void

    Kind: instance method of Amqp

    amqp.publish(message, [callback], [options]) ⇒ promise.<Array.<boolean>>

    Kind: instance method of Amqp

    Param Type Default Description
    message * message any type that can be JSON.stringify'ed
    [callback] function callback(message) for processing response from consumers
    [options] object
    [options.routes] string | Array.<string> "['#']" route names
    [options.exchangeName] string "'defaultExchange'" exchange name

    amqp.consume(callback, [options]) ⇒ promise

    Kind: instance method of Amqp

    Param Type Default Description
    callback function consumer(message) function should returns a promise
    [options] object
    [options.routes] string | Array.<string> "['#']" exchange routes
    [options.queueName] string "''" queue name for processing messages. consumers with the same queue name process messages in round robin style
    [options.exchangeName] string "'defaultExchange'" exchange name
    [options.exchangeType] string "'topic'" exchange type
    [options.priority] number 0 priority, larger numbers indicate higher priority
    [options.prefetch] number 1 1 or 0, if to process request one at a time

    amqp.getChannel() ⇒ promise

    Kind: instance method of Amqp
    Returns: promise - - promise

    Install

    npm i @coolgk/amqp

    DownloadsWeekly Downloads

    38

    Version

    2.0.5

    License

    MIT

    Unpacked Size

    13.6 kB

    Total Files

    5

    Last publish

    Collaborators

    • coolgk