@peerbit/rpc
TypeScript icon, indicating that this package has built-in type declarations

5.0.19 • Public • Published

RPC

This module contains a communication protocol for generic request-and-response communication. This module can be used as a component in other modules. Documents, DString for examples

How it works

@variant("hello")
class Hello {
    
    // add payload properties here
    constructor() {
       
    }
}

@variant("world")
class World {
    
    // add payload properties here
    constructor() {
       
    }
}

@variant("rpc-test")
class RPCTest extends Program {

    @field({ type: RPC })
    rpc: RPC<Hello, World>;

    async setup(): Promise<void> {
        await this.rpc.setup({
            responseType: Hello,
            queryType: World,
            context: this,
            responseHandler: (resp, from) => {
                return resp;
            },
        });
    }
}

// later (assume that some other peers also opens the RPCTest program)
const peer = await Peerbit.create ()
const rpcTest = peer.open(new RPCTest());

await rpcTest.rpc.request( new Hello(), (resp) => { console.log(resp)  })

Visualized

p1

p1

See Document store and Clock Service as implementation examples.

Readme

Keywords

none

Package Sidebar

Install

npm i @peerbit/rpc

Weekly Downloads

22

Version

5.0.19

License

MIT

Unpacked Size

60.9 kB

Total Files

27

Last publish

Collaborators

  • marcus.pousette