Skip to content
This repository was archived by the owner on Sep 22, 2022. It is now read-only.

kdeyev/rpc-web-channel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rpc-web-channel JavaScript Client

rpc-web-channel mimics to QtWebChannel JavaScript API, but uses JSON-RPC 2.0 protocol over uni-directional communication channel. In general rpc-web-channel JavaScript Client is the client API for rpc-web-channel server, which builds client-side stubs based on JSON Schema Service Descriptor

Motivation

The regular JSON-RPC 2.0 client code:

var jrpc = new simple_jsonrpc(); //set a communication function jrpc.toStream = function(_msg){ ... }; //call jrpc.call("object.slot").then(function (result) { ... }); 

The rpc-web-channel client:

var jrpc = new simple_jsonrpc(); jrpc.toStream = function(_msg){ ... }; new rpc-web-channel(jrpc, function(services) { services.object.slot().then(function (result) { ... }); }); 

Getters/Setters

rpc-web-channel allows the symplyfied access to getters and setter. The regular access looks like:

 // Properties access object.setProperty("I'm setter").then(function (result) { document.getElementsByClassName('paragraph')[0].innerHTML += 'object.setProperty result: ' + result + '<br>'; // call Getter as function call object.getProperty().then(function (result) { document.getElementsByClassName('paragraph')[0].innerHTML += 'object.getProperty result: ' + result + '<br>'; }); }); 

And the symplified version:

// Anonymous local async function call is nedded for further await (async function() { // wait for setter finish await (object.propertyWithGetterSetter = 42); // wait for getter finish let property = await object.propertyWithGetterSetter; // synch access to property document.getElementsByClassName('paragraph')[0].innerHTML += 'propertyWithGetterSetter result: ' + property + '<br>'; }()); 

References

  • QtWebChannel enables peer-to-peer communication between a server (QML/C++ application) and a client (HTML/JavaScript or QML application)
  • JSON Schema Service Descriptor is simply a JSON Schema with the additional definition for methods.
  • simple-jsonrpc-js - Simple JSON-RPC javascript library. Generate and parse json rpc messages

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors