Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

sails-hook-better-rabbitmq

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sails-hook-better-rabbitmq

Hook integrating sails and Rabbit MQ.

  • 1.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
15
decreased by-69.39%
Maintainers
1
Weekly downloads
 
Created
Source

sails-hook-rabbitmq

sails-hook-rabbitmq is a hook for sails.js which enables communication to a Rabbit MQ server. The package used the library rabbot to enable and simplify the communication with Rabbit MQ.

The hook does not do anything all that special. The hook exposes a global(configurable) to access the publish method of rabbot. It also looks at a controllers folder which has actions that are called when watching a specific route(or queue). If the action successfully ends msg.ack(); is called.

Install

npm install git+http://BOESGIT01/n-tech/sails-hook-rabbitmq.git

Configuration

Create a new config file {sails root}/config/rabbitmq.js connections, exchanges, queues, and bindings are native representations of rabbot configuration.

routes is a list of routes and topics to watch. Action attribute is the path to the action controller.

customModelGlobal (rabbitmq) does just as it state. It is the name of the global object to interface with RabbitMQ

controllerDir (/api/controllers-mq) attribute allows custom controller directory. Default is api/controllers-mq

publishOnDisconnect (true) if a server disconnect is detected should we still publish the message? If true the message will be stored in memory. Once server is back online message will be sent.

queueOnDisconnect (true) if a server disconnect is detected should we still queue the message? If true the message will be stored in memory. Once server is back online message will be sent.

saveFailedMessageOnClose (false) Not implemented yet

waitForServerToAcceptMessages (true) Should we wait for the sever to accept a message before responding publish/queue function call. If true and the server is offline we the function will not return until the server is back online.

module.exports.rabbitmq = {
  customModelGlobal: "MQ",
  controllerDir: '/api/controllers-mq',
  connections: [{
    username: 'admin',
    password: 'admin',
    host: 'localhost',
  }],
  connectionConfig: {
    json: true,
    heartbeatIntervalInSeconds: 5,
    reconnectTimeInSeconds: 10,
    connectionOptions: {},
    timeout: 1000,
    failAfter: 30,
    retryLimit: 400
  },
  channels: [
    {
      name: 'channel_1',
      default: true,
      prefetch: 1,
      exchanges: [ {
        name: 'ss.worker',
        type: 'topic',
        config: {
          autoDelete: false,
          persistent: true
        }
      } ],
      queues: [{
        name: 'worker.packages',
        config: {
          durable: true,
          autoDelete: false,
          subscribe: true,
          noBatch: true
        }
      }, {
        name: 'worker.general',
        config: {
          durable: true,
          autoDelete: false,
          subscribe: true,
          noBatch: true
        }
      }],
      bindings: [{
        exchange: 'worker',
        target: 'worker.packages',
        key: 'packages'
      }]
    }
  ],
  routes: [
    { queue: 'ss.worker.general', action: '/general' },
    { queue: 'ss.worker.packages',  action: '/packages' }
  ]
};

 

Publishing


await MQ.publish({exchange}, {key}, { payload }); 

await MQ.publish('worker', 'packages', { test: 'test message' });

Publishing - Directly to Queue


await MQ.sendToQueue({queue}, { payload });

await MQ.sendToQueue('worker.general', { test: 'test message' });

Controller Example

exports.default = {
  fn: async function (message) {
    console.log('test', message.body.message);
  }
};

Keywords

FAQs

Package last updated on 22 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc