Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including octobus with all npm packages installed. Try it out:

var octobus = require("octobus")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

octobus v0.0.1

fast, simple request/response bus based on octobit

#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
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free