origami-crane
v0.3.4
Published
Connects to Origami's stack
Downloads
4
Readme
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 () {
}
);
}
);