New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

dnode-spider

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dnode-spider

asynchronous rpc system for node.js, bi-direction and poly-direction communication...

latest
Source
npmnpm
Version
0.9.4
Version published
Weekly downloads
22
175%
Maintainers
1
Weekly downloads
 
Created
Source

dnode-spider

dnode-spider is an asynchronous rpc system for node.js based on dnode-protocol and TCP sockets. Fly-Clients nodes and Spider-Server in the middle of web.

Fly === Client. Spider === Server.

dnode-spider: spider rpc

Features

  • Automatic reconnection
  • bi-direction and poly-direction communication provided by Spider-Server 'proxy' method. You can call any Fly-Clients functions from any Fly-Clients.

Install

npm i dnode-spider

Examples

server.js:

var dnode = require('dnode-spider');

/** create Spider-Server */
var server = new dnode.Spider({
    s: function (a, b, cb) {
        cb(a + b, 'Hello from Spider!');
    }
}, {port: 5000, host: 'localhost'});

/** on connection call client function "c" */
server.on('connection', function(remote) {
	remote.c(1, 2, function(res, hello) {
		console.log(res, hello);
	});
});

client.js:

var dnode = require('dnode-spider');

/** create Fly-Client */
var client = new dnode.Fly({
    c: function (a, b, cb) {
        cb((a + b) * 2, 'Hello from Fly! My name: '+client.nodeId);
    }
}, {port: 5000, host: 'localhost', nodeId: 'Fly1'});

/** on connection call client function "s" */
client.on('connection', function(remote) {
	remote.s(1, 2, function(res, hello) {
		console.log(res, hello);
	});
});

output:

node server.js &
node client.js &
3 'Hello from Spider!'
6 'Hello from Fly! My name: Fly1'

Methods

var dnode = require('dnode-spider')

Server Methods

var server = dnode.Spider(Object api, Object options = {});

Create new Spider-Server, shard api object functions to all connected Fly-s. If you don't like dnode.Spider classname, you can use dnode.Server. dnode.Server === dnode.Spider

  • Object api - shared Spider object
  • Object options - settings object {port: 5000(default), host: 'localhost'(default)}

After creation in api object add '$' object with 2 methods: 'proxy' and 'ids'. This methods availible in all Fly-s remote.

api.$.proxy(String nodeId, String methodname, [arguments...])

Call method with 'methodname' from Fly with id = 'nodeId'.

api.$.ids(Function callback)

Return Array of all Id connected to Spider

server.broadcast(String methodname, [arguments...])

Broad cast call 'methodname' on all Fly and pass to each arguments

server.ids()

Return ids of all connected clients

Events

server.on('connection', function(remote, client) {});	// client connected
server.on('disconnection', function(client) {});		// client disconnected

Client Methods

var client = dnode.Fly(Object api, Object options = {});

Create new Fly-Client, shard api object functions to Spider-Server. If you don't like dnode.Fly classname, you can use dnode.Client. dnode.Client === dnode.Fly

  • Object api - shared Fly object
  • Object options - settings object {port: 5000(default), host: 'localhost'(default), nodeId: 'any uniq_id or name'(default process.pid)}

Events

server.on('connection', function(remote) {}); // client connected

Keywords

ipc

FAQs

Package last updated on 02 Oct 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts