Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A simple JavaScript library to create, parse and manage JSON-RPC 2.0 calls.

License

Notifications You must be signed in to change notification settings

oliver-moran/json-rpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

11 Commits

Repository files navigation

JSON-RPC

A simple JavaScript library to create, parse and manage JSON-RPC 2.0 calls. This library may be particularly useful to use the JSON-RPC specification inconjunction with something like Socket.io.

For the JSON-RPC 2.0 specification, see: http://www.jsonrpc.org/specification

Pseudo code example for a JSON-RPC request:

// Client:
var request = new JSON_RPC.Request(method, params);
var id = request.id;
request.toString(); // send to server
// Server:
var request = JSON_RPC.parse(request);
request.response = request.method(); // if successful
request.toString(); // return to client
// Back on Client:
var request = JSON_RPC.parse(request);
if (request.id == id) { // the request ID is maintained
 var response = request.response; // if successful
}

Notifications are handled similarly but without support for IDs or a response/error:

// Client:
var request = new JSON_RPC.Notification(method, params);
request.toString(); // send to server
// Server:
var request = JSON_RPC.parse(request);
if (request.constructor === JSON_RPC.Notification) {
 // DO NOT reply to a Notification
 request.method();
}

Error handling for requests (not notifications) are handled like this:

// Server:
var request = JSON_RPC.parse(request);
if (request.error) request.toString(); // parse error, return to client
var response = request.method();
if (!reponse) { // hypothetical error scenario
 request.error = new JSON_RPC.Error(-1, "An error occurred");
} else {
 request.response = response;
}
request.toString(); // return to client

The JSON_RPC object also contains pre-rolled errors:

JSON_RPC.PARSE_ERROR
JSON_RPC.INVALID_REQUEST
JSON_RPC.METHOD_NOT_FOUND
JSON_RPC.INVALID_PARAMS
JSON_RPC.INTERNAL_ERROR

About

A simple JavaScript library to create, parse and manage JSON-RPC 2.0 calls.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

AltStyle によって変換されたページ (->オリジナル) /