rsocket-rxjs
Version:
RSocket Protocol Client Implementation
43 lines (42 loc) • 3.4 kB
TypeScript
import { Observable } from "rxjs";
import { RSocketConfig } from "../../..";
import { RSocket, RSocketState } from '../../api/rsocket.api';
import { Payload } from "../../core/protocol/payload";
import { CompositeMetadata } from "../composite-metadata";
import { DecodedPayload, EncodingRSocket, RSocketEncoderRequestOptions } from "../encoding-rsocket-client";
import { Authentication } from "../security/authentication";
import { RSocketRoutingResponder } from "./rsocket-routing-responder";
export interface RoutedPayload extends DecodedPayload {
route: string;
authentication?: Authentication;
metadata?: CompositeMetadata;
metadataMimeType?: 'message/x.rsocket.composite-metadata.v0';
}
export declare type MessagePayloadType = 'dataOnly' | 'decodedPayload';
export interface MessageRoutingOptions<PayloadType extends MessagePayloadType> {
payloadType: PayloadType;
encodingOptions?: RSocketEncoderRequestOptions;
}
export declare class MessageRoutingRSocket implements RSocket<RoutedPayload, DecodedPayload, RSocketEncoderRequestOptions> {
readonly parent: EncodingRSocket;
readonly _responder: RSocketRoutingResponder;
constructor(parent: EncodingRSocket);
get responder(): RSocketRoutingResponder;
simpleRequestResponse<ResponseType = any, RequestType = any>(route: string, data?: RequestType, authentication?: Authentication): Observable<ResponseType>;
requestResponse(payload: RoutedPayload, options?: RSocketEncoderRequestOptions): Observable<DecodedPayload<any, any>>;
simpleRequestStream<ResponseType = any, RequestType = any>(route: string, data?: RequestType, requester?: Observable<number>, authentication?: Authentication): Observable<ResponseType>;
requestStream(payload: RoutedPayload, requester?: Observable<number>, options?: RSocketEncoderRequestOptions): Observable<DecodedPayload<any, any> | Payload>;
simpleRequestFNF(route: string, data?: any, authentication?: Authentication): void;
requestFNF(payload: RoutedPayload): void;
addRequestResponseHandler<RequestType, ResponseType = any>(route: string, handler: (requestData: RequestType, metadata?: CompositeMetadata) => Observable<ResponseType> | ResponseType, options?: MessageRoutingOptions<'dataOnly'>): any;
addRequestResponseHandler<RequestType>(route: string, handler: (requestData: RequestType, metadata?: CompositeMetadata) => Observable<DecodedPayload> | DecodedPayload, options?: MessageRoutingOptions<'decodedPayload'>): any;
addRequestStreamHandler<RequestType, ResponseType = any>(route: string, handler: (requestData: RequestType, metadata?: CompositeMetadata) => Observable<ResponseType> | ResponseType, options?: MessageRoutingOptions<'dataOnly'>): any;
addRequestStreamHandler<RequestType>(route: string, handler: (requestData: RequestType, metadata?: CompositeMetadata) => Observable<DecodedPayload> | DecodedPayload, options?: MessageRoutingOptions<'decodedPayload'>): any;
addFireAndForgetHandler<RequestType = any>(route: string, handler: (requestData: RequestType, metadata?: CompositeMetadata) => void, options?: RSocketEncoderRequestOptions): void;
private _createMappingHandler;
close(): Observable<void>;
state(): Observable<RSocketState>;
getSetupConfig(): RSocketConfig;
private _isCompositeMetadataRequest;
private _constructCompositeMetadata;
}