import { ClientServerConfig, ServerLinkData, XYServerInfo, XYServerUrlInfo } from './index.type'; import { default as Client } from '../client'; import { default as Action } from '../../action/index'; import { ICodeList, IConfMgmtUrl } from '../../type/client'; declare class ServerManager { private client; private logger; private action; private serverUrlInfo; private innerWssServer; private serverConfig; private includeConfigNameList; private errorcode; private i18nCode; constructor(client: Client); getErrorCode(): ICodeList; getI18nCode(): ICodeList; getServerConfig(): ClientServerConfig; /** * 获取服务器地址 * * @returns { XYServerUrlInfo } - 服务器地址配置 */ getServerUrlInfo(): XYServerUrlInfo; /** * 获取WebSocket URL地址 * * 信令多活:获取信令服务信息,如果未从信令多活接口获取信令网关服务的serverId,则走默认地址 * * @returns { string } - 返回WebSocket地址 */ getWssUrl(): Promise; /** * 设置国际化i8n列表 * * @param { ICodeList } code - 国际化列表 */ setI18nCode(code: ICodeList): void; /** * 获取指定Key的国际化消息 * * @param { string } key - 消息Key * @returns { string } - 返回国际化消息 */ getI18nMessage(key: string): string; /** * 获取指定Key的错误消息 * * @param { string } key - 消息Key * @returns { string } - 返回错误码消息 */ getErrorCodeMessage(key: string): string; /** * 设置错误码列表 * * @param { ICodeList } code - 错误码列表 */ setErrorCode(code: ICodeList): void; /** * 设置服务器地址 * * @param { XYServerInfo } serverInfo - 服务器地址配置 */ setServerAddress(serverInfo: XYServerInfo): Promise; /** * 内外网呼叫,通过此方法获取内网探测地址(信令网关地址)进行跨云呼叫会议,即内网用户呼叫内网服务,外网用户呼叫云服务; * 备注:混合云呼叫,rest服务都在外网,信令、媒体服务在内网 * * @property { XYLocatorConfig } config - 内外网探测配置项 * @returns { Promise } - 返回内网服务器地址,如果未查询到,则返回空值,此时需要切换至外网配置 */ detectLocator: () => Promise; /** * 初始化 配置Server地址 */ private init; /** * 格式化服务器地址 */ private formatServerUrl; /** * 设置action信息 */ private setActionInfo; /** * 移出协议头 * * @param { string } address - 服务器地址 * @returns { string } - 结果 */ private removeProtocol; /** * 获取内部企业ID * * @param { string } extId - 外部企业ID * @returns { string } - 内部企业ID */ private getEnterpriseId; /** * 获取内网WebRtcSigGW服务地址 * * @param { string } enterpriseId - 内部企业ID * @returns { XYLocatorServerInfo[] } - 返回内网WebRtcSigGW服务地址 */ private locateServers; /** * 探测可用的内网WebRtcSigGW服务地址 * * @param { XYLocatorServerInfo[] } serverList - 内网WebRtcSigGW服务地址 * @returns { string } - 返回可用的内网WebRtcSigGW服务地址 */ private detectWorkingServer; /** * 确保服务器配置已加载 * * @param {string} key - serverConfig的键值 */ verifyConfig(key: keyof ClientServerConfig): Promise; /** * 获取错误码/i18n等json链接、会控地址、im地址 */ fetchAndSetConfig(): Promise; /** * 获取会控相关地址/im地址 * * @returns Promise */ getConfMgmtUrl(): Promise; /** * 获取详细的会控地址 * * @param { string } url server下发的会控地址 * @param { string } platform 平台 * @returns IConfMgmtUrl */ private getMeetingControlUrl; /** * 获取链接内容 * * @param { string } configName - 'errorcode' | 'i18n' * @param { ServerLinkData } data - 数据 * @param { ServerLinkData } oldData - 历史数据 * @param { Action } action - Action实例 */ getCodeByJson(configName: string, data: ServerLinkData | string, oldData: ServerLinkData, action: Action): Promise; destroy(): void; } export default ServerManager;