qaap-barge
v2.0.1
Published
JSON-RPC client over WebSockets for Node.js
Downloads
16
Readme
qaap-barge
(deprecated - please use rpc-websockets)
Barge wraps the "websockets/ws" library providing JSON RPC 2.0 support on top.
Installation
npm install qaap-barge
Examples
var Barge = require('qaap-barge')
// instantiate Barge and connect to an RPC server
var ws = new Barge('ws://localhost:8080/rpc/1.0')
ws.on('open', function() {
// call an RPC method with parameters
ws.call('sum', [5, 3]).then(function(result) {
require('assert').equal(result, 8)
})
// send a notification to an RPC server
ws.notify('openedNewsModule')
// subscribe to receive an event
ws.subscribe('feedUpdated')
ws.on('feedUpdated', function() {
updateLogic()
})
// unsubscribe from an event
ws.unsubscribe('feedUpdated')
// close a websocket connection
ws.close()
})
API
var Barge = require('qaap-barge')
var ws = new Barge('ws://localhost:8080/rpc/1.0')
new Barge(address[, options]) -> Barge
Instantiate a Barge client.
Parameters:
address
{String}: The URL of the WebSocket server. Defaults to 'ws://localhost:8080/rpc/1.0'.options
{Object}: Client options that are also forwarded tows
.autoconnect
{Boolean}: Client autoconnect upon Barge class instantiation. Defaults totrue
.reconnect
{Boolean}: Whether client should reconnect automatically once the connection is down. Defaults totrue
.reconnect_interval
{Number}: Time between adjacent reconnects. Defaults to1000
.max_reconnects
{Number}: Maximum number of times the client should try to reconnect. Defaults to5
.
ws.call(method[, params]) -> Promise
Calls a registered RPC method on server. Resolves once the response is ready. Throws if an RPC error was received.
Parameters:
method
{String}: An RPC method name to run on server-side.params
{Object|Array}: Optional parameter(s) to be sent along the request.
ws.notify(method[, params])
Sends a JSON-RPC 2.0 notification to server.
Parameters:
method
{String}: An RPC method name to run on server-side.params
{Object|Array}: Optional parameter(s) to be sent along the request.
ws.subscribe(event) -> Promise
Subscribes for a defined event.
Parameters:
event
{String}: Event name.
ws.unsubscribe(event) -> Promise
Unsubscribes from a defined event.
Parameters:
event
{String}: Event name.
ws.close([code[, data]])
Closes a WebSocket connection gracefully.
Parameters:
code
{Number}: Socket close code.data
{String}: Optional data to be sent to socket before closing.
Event: 'open'
Emits when the connection is opened and ready for use.
Event: 'error'
- <Error>
Emits when a socket error is raised.
Event: 'close'
Emits when the connection is closed.
Event: <Notification>
- <Object>
Emits a notification event a client has subscribed to once the server sends it.
Example:
ws.subscribe('feedUpdated')
ws.on('feedUpdated', handlerFunction)