sdg-rpc
Version:
pomelo ts rpc
46 lines (45 loc) • 1.25 kB
TypeScript
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;
}