Awesome
json-rpc client
JSON-RPC 2.0 TCP implementation with persistent connections using promises - very fast and without dependencies
Installation
npm install json-rpc-client
Example usage
Native promise
var jsonrpc = require('json-rpc-client')
// create client and connect
var client = new jsonrpc({ port: 7070, host: '127.0.0.1'})
client.connect().then(function()
{
// send json rpc
client.send('add', [1,2]).then(function(reply)
{
// print complete reply
console.log(reply)
},
//transport errors
function(error)
{
console.error(error)
})
},
function(error)
{
console.error(error)
})
Generators (using co)
var jsonrpc = require('json-rpc-client')
var co = require('co')
// create client and connect
var client = new jsonrpc({ port: 7070, host: '127.0.0.1'})
co(function*()
{
try
{
yield client.connect()
// send json rpc
var reply = yield client.send('add', [1,2])
// print complete reply
console.log(reply)
}
catch(error)
{
console.error(error)
}
})
API
var jsonrpc = require('./jsonrpc')
jsonrpc (options)
Creates a new RPC connection object.
Options:
- host: Host the client should connect to. Defaults to '127.0.0.1'.
- port: Port the client should connect to. Defaults to '7070'.
- keepalive [optional]: if set, keepalive will set using net-keepalive
connect
Returns promise which resolves after the connection to the specified host is ready
send (methodName, parameters, notification)
Sends json data through persisted tcp connection.
methodName: string
parameters: Object/Array with parameters
notification: true/false to make notification request (no reply)
- Promise - object containing reply data along with error
close
Closes RPC connection and returns promise afterwards.
Event 'error'
- 'Error Object'
Emitted when an error occurs.
Event: 'close'
- 'had_error' 'Boolean' true if the socket had a transmission error
Emitted once the RPC connection socket is fully closed. The argument 'had_error' is a boolean which says if there was an error.