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.
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 = ;/** create Spider-Server */var server ={;}port: 5000 host: 'localhost';/** on connection call client function "c" */server;
client.js:
var dnode = ;/** create Fly-Client */var client ={;}port: 5000 host: 'localhost' nodeId: 'Fly1';/** on connection call client function "s" */client;
output:
node server.js &
node client.js &
3 'Hello from Spider!'
6 'Hello from Fly! My name: Fly1'
Methods
var dnode =
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; // client connectedserver; // 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; // client connected