Package Exports
- jsonrpc-websocket-client
- jsonrpc-websocket-client/dist/index.js
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-clientUsage
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 userejectUnauthorized(defaults totrue): whether to reject invalid HTTPS certificate (e.g. self signed)
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());Contributions
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
