DRPC module for Credo. Implements Aries RFC 0804.
In order for this module to work, we have to inject it into the agent to access agent functionality. See the example for more information.
import { DrpcModule } from '@credo-ts/drpc'
const agent = new Agent({
config: {
/* config */
},
dependencies: agentDependencies,
modules: {
drpc: new DrpcModule(),
/* other custom modules */
},
})
await agent.initialize()
// Send a request to the specified connection
const responseListener = await senderAgent.modules.drpc.sendRequest(connectionId, {
jsonrpc: '2.0',
method: 'hello',
id: 1,
})
// Listen for any incoming requests
const { request, sendResponse } = await receiverAgent.modules.drpc.recvRequest()
// Process the received request and create a response
const result =
request.method === 'hello'
? { jsonrpc: '2.0', result: 'Hello world!', id: request.id }
: { jsonrpc: '2.0', error: { code: DrpcErrorCode.METHOD_NOT_FOUND, message: 'Method not found' } }
// Send the response back
await sendResponse(result)