0.3.4 • Published 8 years ago

origami-crane v0.3.4

Weekly downloads
1
License
ISC
Repository
gitlab
Last release
8 years ago

Origami crane

Purpose

To multiplex socket into subsockets and thus optimize lower connection levels. Subsockets might want to connect to an specific namespace, and that namespace might require a secret challenge.

Requirements

  • name-registry: Keeps a list of namespaces allowed to connect to this instance. Also, signs namespace requests for incoming connections. If the signature matches a subsocket connection is allowed to continue.
  • initializer: delegate function that setups a subsocket after it was authenticated. It is expected to return a Promise.
  • socket: undelaying socket that uses .emit/.on/.off API as an EventEmitter.

Usage

listening incoming connections sockets

var Crane = require('origami-crane');

var initializer = function (socket, namespace, crane) {
  socket
  .on(
    'sum',
    function (n1, n2, callback) {
      callback(n1 + n2);
    }
  );

  return Promise.resolve();
};

var nameRegistry; // see https://gitlab.com/origami2/name-registry/blob/master/README.md

var crane = new Crane(
  nameRegistry,
  intializer,
  socket
);

connecting to the first crane:

var Crane = require('origami-crane');

var initializer = function (socket, namespace, crane) {
  // we won't accept incoming connections
  return Promise.reject();
};

var nameRegistry; // see https://gitlab.com/origami2/name-registry/blob/master/README.md

var crane = new Crane(
  nameRegistry,
  intializer,
  socket
);

crane.createSocket(
  'OtherSide', // namespace we want to connect to
  function (socket, namespace, crane) {
    return Promise.resolve(
      // this function will be called when the socket on both ends become ready
      function () {
      
      }
    );
  }
);
0.3.4

8 years ago

0.3.3

8 years ago

0.3.2

8 years ago

0.3.0

8 years ago

0.2.27

8 years ago

0.1.26

8 years ago

0.1.25

8 years ago

0.1.23

8 years ago

0.1.21

8 years ago

0.1.20

8 years ago

0.1.17

8 years ago

0.1.16

8 years ago

0.1.14

8 years ago

0.1.12

8 years ago

0.1.11

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

8 years ago

0.1.4

8 years ago

0.1.3

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.9

8 years ago

0.0.8

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.1

8 years ago