node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

raptor-client

Raptor RPC Client

A transport-agnostic RPC client that follows the JSON-RPC 2.0 spec. Works in the browser and on the server.

Installation

npm install --save raptor-client

Usage

AJAX

var raptor = require('raptor-client')
var client = raptor('http://localhost/api')
 
client.send('add', [1, 2], function (err, res) {
  if (err) throw err
 
  console.log('1 + 2 =', res)
})

Web Sockets

var raptor = require('raptor-client')
var client = raptor('ws://localhost')
 
client.send('add', [1, 2], function (err, res) {
  if (err) throw err
 
  console.log('1 + 2 =', res)
})
 
client.on('notification', function (msg) {
  // The server wants something! 
})

API

raptor(uri)

Returns a new Client connected to the specific uri.

Supported protocols in the browser: http, https, ws, wss Supported protocols on Node.js: http, https

Event: notification

The server has sent a notification to us.

Client#send(method[, params]) => Promise<any>

Send a request to the server. Returns a promise of the result from the server.

If an error response is returned from the sever, the promise will reject with an error that has .rpcCode and .rpcData populated from the response.

Client#notify(method[, params]) => Promise<void>

Send a notification to the server. Returns a promise that will resolve when the notification has been sent to server.

The promise will only reject if there is a network problem, since a server cannot respond to a notification.

License

MIT