JSON-RPC 2 over WebSocket
Installation of the npm package:
> npm install --save jsonrpc-websocket-client
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 userejectUnauthorized
(defaults to true
): whether to reject invalid HTTPS certificate (e.g. self signed)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());
Contributions are very welcomed, either on the documentation or on the code.
You may:
ISC © Julien Fontanet