@groundmuffin/rabbitmq-pub-sub

    0.2.24 • Public • Published

    rabbitmq-pub-sub

    TypeScript NodeJs Platform

    Introduction

    A typescript library for producing and consuming rabbitmq messages

    If you don't have typings installed:

    npm i typings -g
    

    Getting Started

    Installation

    Install via npm

    npm i rabbitmq-pub-sub --save
    

    Example

    import {RabbitMqConnectionFactory,RabbitMqConsumer,RabbitMqProducer,IRabbitMqConnectionConfig} from "rabbitmq-pub-sub";
    import * as Logger from "bunyan"
     
    const logger: Logger = //create logger
    interface IMessage{
      data: string;
      value: number;
    }
     
    // Create connection with amqp connection string
    // const factory = new RabbitMqConnectionFactory(logger, "amqp://localhost:1234");
     
    // or, create connection with host/port config
    const config:IRabbitMqConnectionConfig = {
      host:"localhost",
      port:1234
    }
    const factory = new RabbitMqConnectionFactory(logger, config);
     
    const consumer = new RabbitMqConsumer(logger, factory)
     
    consumer.subscribe<IMessage>("<queue name>", m => {
      // message received
      console.log("Message", m.data, m.value)
    }).then(disposer => {
      // later, if you want to dispose the subscription
      disposer().then(() => {
        // resolved when consumer subscription disposed
      });
    }).catch(err => {
      // failed to create consumer subscription!
    });
     
    const producer = new RabbitMqProducer(logger, factory)
     
    producer.publish<IMessage>("<queue name>", {data: "data", value: 23})
      .then(() => {
        // sent to queue
      }).catch((err) => {
        // failed to enqueue
      })

    Consumed Libraries

    amqplib

    amqp library

    Inspiration

    Rokot - Rocketmakers

    Install

    npm i @groundmuffin/rabbitmq-pub-sub

    DownloadsWeekly Downloads

    1

    Version

    0.2.24

    License

    MIT

    Unpacked Size

    78.5 kB

    Total Files

    15

    Last publish

    Collaborators

    • groundmuffin