JSON-RPC 2 over WebSocket
npm install jsonrpc-websocket-client   
> JSON-RPC 2 over WebSocket
Installation of the npm package:
```
> npm install --save jsonrpc-websocket-client
`javascript
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);
});
`
`js`
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 userejectUnauthorized
- (defaults to true): whether to reject invalid HTTPS certificate (e.g. self signed)
Status
`js`
console.log(client.status);
Possible values:
- openconnecting
- closed
-
Connection
`js`
await client.open();
Disconnection
`js`
await client.close();
This method can also be used to abort the connection while connecting.
Connection
`js`
client.on("open", () => {
console.log("client is now open");
});
Disconnection
`js`
client.on("closed", () => {
console.log("client is now closed");
});
Notification
`js`
client.on("notification", (notification) => {
console.log("notification received", notification);
});
> Reconnect on disconnection:
`js`
client.on("closed", () => {
client.open();
});
> Use back off to keep retrying to connect:
`js
import { createBackoff } from "jsonrpc-websocket-client";
client.open(createBackoff());
``
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