octobus
v0.0.1
Published
fast, simple request/response bus based on octobit
Downloads
1
Readme
#Octobus Fast, simple request/response bus based on Octobit codec.
Usage: server
.createServer() and .connect() accept Nodejs's default parameters.
var Octobus= require('octobus')
var bus= new Octobus('./structures') // path to *.octo.json folder
// example directory have one file "heartbeat.octo.json"
var server= bus('haExample').createServer().listen(8181)
server.on('request', function(req, callback)
{
if( req && req.get('heartbeat').ping )
console.log('ping')
callback( {heartbeat: {pong: 1} } )
})
Usage: client
.connect() accept Nodejs's default parameters.
var Octobus= require('octobus')
var bus= new Octobus('./structures')
var client= bus('haExample').connect(8181)
client.request({heartbeat: {ping: 1}}, function(res)
{
if( res && res.get('heartbeat').pong )
console.log('pong')
else
console.log('request timeout')
})
additionally .connect() can accept reconnect options and {requestTimeout: 500}
API
API: var Bus= new Octobud(pathToStructFolder)
Path must be a valid directory containing structures named *.octo.json
API: Server= Bus([allowe]).createServer
allowed
can be an array, string or undefined. When allowed
is provided server will only server responses to clients requesting allowed
structures. If client request structure that is not allowed server will destroy client's socket
createServer
is the default .createServer() from Nodejs's net module.
API: Server.on('request', function(object, callback){})
object
is Octobject
callback
is not undefiend if client is expecting a response, callback(newObejct)
API: Client= Bus(structName).connect()
structuName
must be an existing file in the strctures folder. Each client can .connect() to a server using only one structure name.
connect
is the deafult .connect() method from Nodejs's net module with the addition of reconnect module. Connect will also accept an additional parameter {requestTimeout: 100}
API: Client.request(object[, callback])
object
to send to server
callback
optional will be called on server's response with received response, unless timeout before in which case called with undefiend
Installation
npm install octobus