0.9.4 • Published 11 years ago

dnode-spider v0.9.4

Weekly downloads
63
License
-
Repository
github
Last release
11 years ago

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
0.9.4

11 years ago

0.9.3

11 years ago

0.9.2

11 years ago

0.9.1

11 years ago

0.9.0

11 years ago

0.8.2

11 years ago

0.8.1

11 years ago

0.8.0

11 years ago

0.7.6

11 years ago

0.7.5

11 years ago

0.7.3

11 years ago

0.7.2

11 years ago

0.7.1

11 years ago

0.7.0

11 years ago

0.6.5

11 years ago

0.6.0

11 years ago

0.5.3

11 years ago

0.5.2

11 years ago

0.5.1

11 years ago

0.5.0

11 years ago