@cloudamqp/amqp-client
Version:
AMQP 0-9-1 client, both for browsers (WebSocket) and node (TCP Socket)
33 lines • 1.32 kB
TypeScript
import type { AMQPMessage } from "./amqp-message.js";
import type { ResolveBody } from "./amqp-publisher.js";
import type { ParserMap, CoderMap } from "./amqp-codec-registry.js";
/**
* Callback invoked for each incoming RPC request.
* Receives a decoded {@link AMQPMessage} and returns the response body.
*/
export type RPCHandler<P extends ParserMap = {}, KP extends keyof P & string = never> = (msg: AMQPMessage<P>) => ResolveBody<P, KP> | Promise<ResolveBody<P, KP>>;
/**
* An RPC server that consumes messages from a queue and replies to each caller.
*
* Uses the session's queue and subscribe machinery, so the consumer is
* automatically recovered after a reconnection.
*
* @example
* ```ts
* const session = await AMQPSession.connect("amqp://localhost")
* const server = await session.rpcServer("my_rpc_queue", async (msg) => {
* return `processed:${msg.bodyString()}`
* })
* // later…
* await session.stop()
* ```
*/
export declare class AMQPRPCServer<P extends ParserMap = {}, C extends CoderMap = {}, KP extends keyof P & string = never, KC extends keyof C & string = never> {
private readonly session;
private subscription;
/**
* Cancel the consumer. The underlying queue remains declared.
*/
close(): Promise<void>;
}
//# sourceMappingURL=amqp-rpc-server.d.ts.map