JSON-RPC 2 over WebSocket
Installation of the npm package:
> npm install --save jsonrpc-websocket-client
This library requires promises support, for Node versions prior to 0.12 see this page to enable them.
import Client from 'jsonrpc-websocket-client'
async function main () {
const client = new Client('ws://example.org')
console.log(client.status)
// → closed
await client.open()
console.log(client.status)
// → open
console.log(
await client.call('method', [1, 2, 3])
)
await client.close()
}
// Run the main function and prints any errors.
main().catch(error => {
console.error(error)
process.exit(1)
})
const client = new Client(opts)
opts
is either a string (the URL of the server) or an object with
the following properties:
url
: URL of the JSON-RPC serverprotocols
(optional): the WebSocket sub-protocols to use
Status
console.log(client.status)
Possible values:
open
connecting
closed
Connection
await client.open()
Disconnection
await client.close()
This method can also be used to abort the connection while connecting.
Connection
client.on('open', () => {
console.log('client is now open')
})
Disconnection
client.on('closed', () => {
console.log('client is now closed')
})
Notification
client.on('notification', notification => {
console.log('notification received', notification)
})
Reconnect on disconnection:
client.on('closed', () => {
client.open()
})
Use back off to keep retrying to connect:
import { createBackoff } from 'jsonrpc-websocket-client'
client.open(createBackoff())
# Install dependencies
> yarn
# Run the tests
> yarn test
# Continuously compile
> yarn dev
# Continuously run the tests
> yarn dev-test
# Build for production (automatically called by npm install)
> yarn build
Contributions are very welcomed, either on the documentation or on the code.
You may:
- report any issue you've encountered;
- fork and create a pull request.
ISC © Julien Fontanet