crossbarjs

1.2.4 • Public • Published

NPM

Build Status codecov Dependency Status Code Climate Known Vulnerabilities contributions welcome

What

crossbarjs is a library whose main purpose is to make interactions with crossbar easier, with support and focus over the 4 main crossbar functionalities and their counterparts:

  • publish
  • subscribe/unsubscribe
  • register/unregister
  • call

Without compromising access to any of the more advanced functionalities provided in the layer bellow.

Why

  • autobahn-js (the only other option for JavaScript) API is long and it breaks the principle of least astonishment. To use it you need to go through pages of sparse documentation understand advanced principles of JavaScript. crossbarjs is an attempt at fixing that. The API it provides is as simple and beginner friendly as possible and its purpose is to make sure that all you need to run crossbario is to download this module and run it without spending extra time on docs, as it is designed to be as intuitive as possible. crossbarjs uses autobahn-js behind the hood, so you can have all the advanced features of the latter one without all of the hassle.

  • crossbarjs handles full automatic reconnection, unlike its competitor. With crossbarjs if your connection fails, the library will attempt a partial reconnect first and then will re-subscribe and re-register everything, so your service keeps working as expected with no down time whatsoever. Its like nothing happened at all.

How

Following are instructions on how to install and use crossbarjs. For questions you can ask in the issues page:

For additional information on the API, feel free to check the crossbarjs home page.

Install

Before using this module, you need to have crossbar installed and running. Then you can do:

npm install crossbarjs --save

API

Functions

Events

Examples

Connect and publish a message:

const crossbarjs = require("crossbarjs");

const crossbar  = crossbarjs();

crossbar.connect()
    .then(() => {
        crossbar.publish("myTopic", "arg1", "arg2");
    })
    .catch(console.log);

Subscribe to a topic:

const crossbarjs = require("crossbarjs");

const crossbar  = crossbarjs();

crossbar.connect()
    .then(() => {
        const print = (str1, str2) => console.log(`str1 is ${str1}, str2 is ${str2}`);
        return crossbar.subscribe("myTopic", print);
    })
    .catch(console.log);

Register a bunch of RPCs:

const crossbarjs = require("crossbarjs");

const crossbar  = crossbarjs();
    //after connecting
    const print = (str1, str2) => console.log(`str1 is ${str1}, str2 is ${str2}`);
    const add3 = (n1, n2, n3) => n1 + n2 + n3;

    crossbar.register([
        { "print": func: print },
        { "addThreeNumbers" : func: add3 }
    ])
    .then(() => console.log("Register successful"))
    .catch(console.log);

Unregister a bunch of RPCs:

//after connecting and registering
crossbar.unregister("print", "addThreeNumbers")
    .then(() => console.log("Unregister successful"))
    .catch(console.log);

Call an RPC:

    //after connecting and registering
    crossbar.call("addThreeNumbers", 1, 2, 3)
        .then(res => console.log(res))
        .catch(console.log);

Dependencies (4)

Dev Dependencies (9)

Package Sidebar

Install

npm i crossbarjs

Weekly Downloads

13

Version

1.2.4

License

MIT

Unpacked Size

3.89 MB

Total Files

59

Last publish

Collaborators

  • fl4m3ph03n1x