ipbus

0.1.1 • Public • Published

npm size libera manifesto

IpBus

IpBus is A high performance interprocess messages bus based on Publish/Subscribe pattern.

It helps you write application which will be able to exchange messages with other applications in different scope:

  • between iframes (by using postMessage API)
  • cross browser tabs communication (by using localStorage API)
  • between front-end and backend (by using socket.io)

You can to use this library both on server and client, with React and other frameworks
It is tiny (8kB, including dependencies).

Installation

To install the stable version:

npm install ipbus

This assumes you are using npm as your package manager.

API Reference

Example

Basic usage

import {IpBus, LoggerConsole, SimpleListener} from 'ipbus';

const bus = new IpBus(new LoggerConsole('ipbus'));

const listener1 = new SimpleListener(function(event) {
  this.logger.info(`received event on ${event.channel}, data is ${event.data}`);  
  return true;
});

const listener2 = new SimpleListener(function(event) {
  this.logger.info(`received event on ${event.channel}, data is ${event.data}`);  
  return false; // return false here to allow to process message by next listener
}, 'listener2');

const listener3 = new SimpleListener(function(event) {
  this.logger.info(`received event on ${event.channel}, data is ${event.data}`);  
  return true;
}, 'listener3');

bus.subscribe('/channel1/*', listener1);
bus.subscribe('/channel2', listener2);
bus.subscribe('/channel2', listener3);

bus.publish( '/channel1/subchannel', 'event1');
bus.publish( '/channel2', 'event2');

Post Message Demo

TBD

Cross-tab Demo

TBD

Socket.io Demo

TBD

React Demo

TBD

Document sharing Demo

TBD

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i ipbus

Weekly Downloads

4

Version

0.1.1

License

MIT

Unpacked Size

134 kB

Total Files

29

Last publish

Collaborators

  • rustam108