1.5.7 • Published 10 years ago

dnode-tarantula v1.5.7

Weekly downloads
53
License
-
Repository
github
Last release
10 years ago

dnode-tarantula

dnode-tarantula is an asynchronous rpc system for node.js based on dnode-protocol and TCP sockets. This is fork of dnode-spider

Features

  • Automatic reconnection
  • bi-direction and poly-direction communication

Install

npm install dnode-tarantula

Examples

server.js:

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

/** 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-tarantula');

/** 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-tarantula')

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
1.5.7

10 years ago

1.5.6

10 years ago

1.5.5

10 years ago

1.5.4

10 years ago

1.5.3

10 years ago

1.5.2

10 years ago

1.5.0

10 years ago

1.4.3

10 years ago

1.4.2

10 years ago

1.4.1

10 years ago

1.4.0

10 years ago

1.3.1

10 years ago

1.2.2

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago