JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1433
  • Score
    100M100P100Q112472F
  • License ISC

JSON-RPC 2 over WebSocket

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

Package Version Build Status PackagePhobia Latest Commit

JSON-RPC 2 over WebSocket

Install

Installation of the npm package:

> npm install --save jsonrpc-websocket-client

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 server
  • protocols (optional): the WebSocket sub-protocols to use
  • rejectUnauthorized (defaults to true): whether to reject invalid HTTPS certificate (e.g. self signed)

Connection management

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.

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