Package Exports
- jsonrpc-websocket-client
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jsonrpc-websocket-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
jsonrpc-websocket-client 
JSON-RPC 2 over WebSocket
Install
Installation of the npm package:
> npm install --save jsonrpc-websocket-clientThis library requires promises support, for Node versions prior to 0.12 see this page to enable them.
Usage
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)
})Creation
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
Connection management
Status
console.log(client.status)Possible values:
openconnectingclosed
Connection
await client.open()Disconnection
await client.close()This method can also be used to abort the connection while connecting.
Events
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)
})Recipes
Always stay connected
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())Development
# Install dependencies
> npm install
# Run the tests
> npm test
# Continuously compile
> npm run dev
# Continuously run the tests
> npm run dev-test
# Build for production (automatically called by npm install)
> npm run buildContributions
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.
License
ISC © Julien Fontanet