UNPKG

sdg-rpc

Version:

pomelo ts rpc

46 lines (45 loc) 1.25 kB
import MailStation from './mailStation'; import { IRpcClientOpts, IRpcServerId, IRpcServerInfo, IPath, IProxies, IRpcMsg } from '..'; export default class RpcClient { opts: IRpcClientOpts; proxies: IProxies; private readonly router; private state; station: MailStation; routerType?: string; private readonly context; private readonly routeContext; constructor(opts: IRpcClientOpts); start(): void; /** * 推送消息到管理器 * @param serverId * @param msg */ rpcInvoke(serverId: string, msg: IRpcMsg): Promise<unknown>; /** * 新server上线时,对应生成代理 * @param servers */ addServers(servers: IRpcServerInfo[]): void; removeServers(ids: IRpcServerId[]): void; replaceServers(servers: IRpcServerInfo[]): void; /** * 加载对应的代理对象 * @param record */ addProxy(record: IPath): void; addProxies(records: IPath[]): void; private insertProxy; /** * 把record的函数写到缓存中 * @param record */ private generateProxy; private proxyCb; /** * Calculate remote target server id for rpc client. */ private getRouteFunction; private createStation; }