node-universe
Version:
基于 Nodejs 环境的一款微服务框架,原理来自于宇宙中的恒星,行星,卫星等系统。
75 lines (74 loc) • 2.95 kB
TypeScript
import Packet from '../packets';
import Star from '../star';
import { LoggerInstance } from '../../typings/logger';
import { GenericObject } from '../../typings';
import { Regenerator } from '../error';
import { StarTransitOptions, TransitRequest } from '../../typings/transit';
import { Transporter } from '../../typings/transit/transporters';
import { Discoverer } from '../../typings/registry/discoverers';
import Node from '../registry/node';
import Context from '../context';
import { MetricRegistry } from '../metrics';
export default class Transit {
star: Star;
logger: LoggerInstance;
nodeID: string;
instanceID: string;
transporter: Transporter;
options: StarTransitOptions | undefined;
discoverer: Discoverer | null;
metrics: MetricRegistry | null;
errorRegenerator: Regenerator | null;
pendingRequests: Map<any, TransitRequest>;
pendingReqStreams: Map<any, any>;
pendingResStreams: Map<any, any>;
connected: boolean;
disconnecting: boolean;
isReady: boolean;
stat: GenericObject;
subscribing: Promise<any> | null;
__connectResolve: any;
constructor(star: Star, transporter: Transporter, options?: StarTransitOptions);
private registerUniverseMetrics;
afterConnect(wasReconnect: boolean): Promise<null | undefined>;
connect(): Promise<unknown>;
disconnect(): Promise<void>;
ready(): void;
sendDisconnectPacket(): Promise<void>;
makeSubscriptions(): Promise<any>;
messageHandler(cmd: string, msg: GenericObject): Promise<boolean> | undefined;
private requestHandler;
responseHandler(packet: GenericObject): void;
sendPing(nodeID?: string, id?: string): Promise<void>;
sendPong(payload: GenericObject): Promise<void>;
processPong(payload: GenericObject): void;
sendResponse(nodeID: string, id: string, meta: any, data: any, error: Error | null): Promise<void>;
eventHandler(payload: GenericObject): Promise<boolean>;
subscribe(topic: string, nodeID: string): Promise<void>;
publish(packet: Packet): Promise<void>;
sendHeartbeat(localNode: Node): Promise<void>;
sendEvent(ctx: Context): Promise<void>;
removePendingRequestByNodeID(nodeID: string): void;
request(ctx: Context): Promise<unknown>;
_sendRequest(ctx: Context, resolve: any, reject: any): Promise<void>;
_createPayloadErrorField(error: any, payload: any): {
name: any;
message: any;
nodeID: any;
code: any;
type: any;
retryable: any;
stack: any;
data: any;
} | undefined;
sendNodeInfo(info: any, nodeID: string): Promise<void>;
private _handleIncomingRequestStream;
private _handleIncomingResponseStream;
private _createErrorFromPayload;
removePendingRequest(id: any): void;
sendeEvent(ctx: Context): Promise<void>;
discoverNodes(): Promise<void>;
discoverNode(nodeID: string): Promise<void>;
}
): Promise<void>;
}