RPC

RPCs (Remote Procedure Calls, sometimes also referred to as Remote Method Invocation) is deepstream’s implementation of request-response workflows.

Methods

client.rpc.provide( name, callback )

Argument Type Optional Description
name String false The name of the RPC. Each client can only register as a provider for an RPC name once.
callback Function false A function that handles incoming RPCs. Will be called with data and an RPC response object.

Registers the client as a provider for incoming RPCs of a specific name. The callback will be invoked when another client calls client.rpc.make().

client.rpc.provide( 'add-two-numbers', function( data, response ){
    response.send( data.numA + data.numB );
});

Only one callback per client can be registered for the same RPC Data can be any serializable object Documentation for the response object can be found here

client.rpc.unprovide( name )

Argument Type Optional Description
name String false The name of the RPC.

Removes the client as a provider previously registered using provide().

client.rpc.unprovide( 'add-two-numbers' );

client.rpc.make( name, data, callback )

Argument Type Optional Description
name String false The name of the RPC.
data Mixed false Any serialisable data ( Objects, Strings, Numbers… ) that will be send with the RPC.
callback Function true A callback with either an error response or the result payload

Executes a remote procedure call. callback will be invoked with the returned result or with an error if the RPC failed.

// Callback
client.rpc.make( 'add-two-numbers', { numA:4, numB: 7 }, (error, result) => {
    // error = null, result = 11
})

// ES6
const result = await client.rpc.make('add-two-numbers', { numA: 4, numB: 7})