Skip to content

Primacron is high level interface written on top of Primus

License

Notifications You must be signed in to change notification settings

primus/primacron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Primacron

Version npmCI

Primacron is an ancient scientist who's responsible for building Unicron, the evil twin of Primus.

Primacron is a high level and highly opinionated interface for Primus which provides multi-server logic through redis and plain HTTP. It introduces the concept of forced validation for every single message it receives. This gives you the guarantee that you can "safely" processes these messages once they are emitted.

This high level interface is composed out of various Primus plugins that are maintained by the Primus project:

The module depends on redis which is used to store a socket address -> server IP dictionary shared among the servers. Please use http://redis.io to get detailed installation instructions.

Installation

The module is distributed through npm and can be installed using.

npm install --save primacron

API

The module exports a constructor function which takes two optional arguments.

Primacron([server][, options])

Returns a new Primacron instance.

Arguments

  • server - Optional - An http/s server instance, automatically created if not provided.
  • options - Optional - An object with the configuration options. You can use any option supported by Primus and the above mentioned plugins.

Example

const Primacron = require('primacron');

const primacron = new Primacron({ port: 8080 });

primacron.validate('data', (message, next) => {
  if (typeof message !== 'number') return next(new Error('Validation failed'));

  next();
});

primacron.on('data', (spark, message) => console.log(message));
primacrom.on('invalid', (err) => console.error(err.stack));

primacron.on('listening', () => {
  const bound = primacron.address();
  console.log('server listening on %s:%d', bound.address, bound.port);
});

License

MIT

About

Primacron is high level interface written on top of Primus

Resources

License

Stars

Watchers

Forks

Packages

No packages published