@actyx/sdk
Version:
Actyx SDK
51 lines (50 loc) • 1.61 kB
TypeScript
import { WebSocketSubjectConfig } from '../../node_modules/rxjs/webSocket';
import { Observable, Subject } from '../../node_modules/rxjs';
import * as t from 'io-ts';
/**
* Unique request id to be chosen by the client. 53 bit integer. Reusing existing request id will cancel the current
* request with that id.
*/
export declare const RequestId: t.NumberC;
export declare type RequestId = t.TypeOf<typeof RequestId>;
export declare const enum RequestMessageType {
Request = "request",
Cancel = "cancel"
}
export declare const RequestMessage: t.UnionC<[t.TypeC<{
type: t.LiteralC<RequestMessageType.Request>;
requestId: t.NumberC;
serviceId: t.StringC;
payload: t.UnknownC;
}>, t.TypeC<{
type: t.LiteralC<RequestMessageType.Cancel>;
requestId: t.NumberC;
}>]>;
export declare type RequestMessage = t.TypeOf<typeof RequestMessage>;
export declare const enum ResponseMessageType {
Next = "next",
Error = "error",
Complete = "complete"
}
export declare class MultiplexedWebsocket<Res extends {
requestId: number;
type: ResponseMessageType;
}> {
private config;
private redialAfter;
private subject;
private requestId;
private lastDial;
readonly errors: Subject<unknown>;
private disconnected;
private queue;
constructor(config: WebSocketSubjectConfig<RequestMessage | Res>, redialAfter: number);
private keepAlive;
close(): void;
private enqueue;
private prune;
private retryAll;
request(serviceId: string, payload?: unknown): Observable<Res & {
type: ResponseMessageType.Next;
}>;
}