zego-express-engine-webrtc
Version:
zego webrtc express sdk
198 lines (197 loc) • 6.71 kB
TypeScript
import { BusinessService, AppInfo, HttpReq, PCOption, HttpReq2, ISettingConfig } from '../entity/AccessHubDefine';
import { AccessHubProtoBuf } from '../protocol/AccessHubProtoBuf';
import { ZegoWssLink } from './net/ZegoWssLink';
import { NetAgentBusinessRequestMgr } from './NetAgentBusinessRequestMgr';
import { HeartBeatMode, NetHeartBeatHandler } from './NetHeartBeatHandler';
import { NetAgentPCRequestMgr } from './PCMgr/NetAgentPCRequestMgr';
import { EventManager } from '../util/EventManager';
import { NetRetryLinkHandler } from './net/NetRetryLinkHandler';
import { StateCenter } from './stateCenter';
import { ZegoLogger } from '../util/logger';
import { StreamManager } from './stream/StreamManager';
import { NetAgentPCRequest } from './PCMgr/NetAgentPCRequest';
export declare class ZegoConnectionAgent {
private proxyCtrl?;
protobuf: AccessHubProtoBuf;
zegoLink: ZegoWssLink;
private _linkCheckTimer;
businessRequestMgr: NetAgentBusinessRequestMgr;
netHeartBeatHandler: NetHeartBeatHandler;
netAgentPCRequestMgr: NetAgentPCRequestMgr;
streamManager: StreamManager;
connectServers: string[];
http3Servers: string[];
specifiedServers: string[];
eventManager: EventManager;
retryLinkHandler: NetRetryLinkHandler | undefined;
getAppConfigFailCount: number;
getAppConfigTime: number;
logger: ZegoLogger;
stateCenter: StateCenter;
linkMsgMaxInterval: number;
linkMsgCheckInterval: number;
connectedTime: number;
connectid: string;
reportSeq: number;
connectSeq: number;
defaultConnectServers: string[];
_linkConnectState: number;
lastLinkConnectState: number;
constructor(proxyCtrl?: any);
get isDestroy(): boolean;
private get _useNetAgent();
get clientIP(): string;
get timeOffset(): number;
get linkConnectState(): number;
set linkConnectState(val: number);
get appInfo(): AppInfo;
/**
* 初始化
* 如果调用了Destroy,不能再调用次函数再次初始化
*/
init(): void;
/**
* 反初始化
* 销毁实例请使用destroy
*/
unInit(): void;
/**
* 设置 app 信息
* @param info
*/
setAppInfo(appInfo: AppInfo): void;
private checkAndConnect;
/**
* 设置 user 信息
* @param userId
*/
setUserInfo(userId: string): void;
/**
* 在连接前传递配置信息(例如云控配置)
* @param config
*/
setSettingConfig(config: ISettingConfig): void;
/**
* 设置统一接入默认连接地址,外部传入多个域名(默认域名及备用域名)
* @param servers 默认域名地址
*/
setNetAgentDefaultServers(servers: string[]): void;
/**
* @deprecated 设置隔离域名 server 地址,风险客户使用,在废弃 im 域名方案后不再使用该接口
* @param servers
*/
setNetAgentSpecifiedServers(servers: string[]): void;
/**
* @deprecated 设置主备用域名的主域名,在调度结果返回时进行替换, 已废弃已不再使用
* @param primaryDomains
*/
setBackupDomains(primaryDomains: string[]): void;
/**
* 设置调度连接 servers, 调用此接口会覆盖setNetAgentDefaultServers的设置, 并马上发起连接
* @param servers 调度域名地址
* @param http3Servers 调度域名http3地址
*/
setDispatchConnectServers(servers: string[], http3Servers?: string[]): void;
/**
* 发起http请求,短连接代理
* @param params 请求参数
* @param sucFunc 成功回调
* @param errFunc 失败回调
* @param ackFunc 接入服务收到回调
*/
startHttpRequest(req: HttpReq, sucFunc?: Function | null, errFunc?: Function | null, ackFunc?: Function | null, option?: {
timeout?: number;
}): void;
/**
* 发起http请求,短连接代理
* @param params 请求参数
* @param sucFunc 成功回调
* @param errFunc 失败回调
* @param ackFunc 接入服务收到回调
*/
startHttpRequest2(req: HttpReq2, sucFunc?: Function | null, errFunc?: Function | null, ackFunc?: Function | null, option?: {
timeout?: number;
extras?: any;
}): void;
/**
* 获取柔性配置
* @param type 柔性配置类型
* @param token 鉴权 token
* @param timeout 超时时间
* @returns
*/
getAppConfigByAgent(type: string, token: string, timeout?: number, etag?: number, options?: {
isSpecial?: boolean;
}): Promise<any>;
/**
* 获取长连接代理请求
* @param service 后端服务
* @param option 附加参数
* @returns
*/
getPCRequest(service: BusinessService, option?: PCOption): NetAgentPCRequest;
connectUa(): void;
destroyConnect(error?: {
code: number;
msg: string;
}): void;
destroy(): void;
/**
* 是否连接状态
* @returns
*/
isConnect(): boolean;
isDisConnect(): boolean;
/**
* 注册回调监听
* @param event 事件
* @param callBack 方法
* @returns
*/
on(event: string, callBack: Function): boolean;
/**
* 移除事件监听
* @param event 事件
* @param callBack 方法
*/
off(event: string, callBack?: Function): void;
setLogger(logger: any): void;
setAccess(isAccess: boolean): void;
getVersion(): string;
reconnectUA(): void;
private _heartBeatHandler;
private _bindWindowListener;
private _bindWxListener;
private _netOnLineHandle;
private _netOffLineHandle;
private _checkLinkMsg;
private _connect;
private _onBackToWebSocket;
private _resetNetAgent;
private _onConnectedEvent;
private _onConnectingEvent;
private _getConfig;
private _onGetConfigSuccess;
private _dispatch;
private _getSvrAddr;
private _handleGroups;
private _getConnectionDomains;
private _getAppConfig;
private _onDisConnectedEvent;
private _reportDisConnectEvent;
private _onPushEvent;
private _redirect;
private _connectClosed;
private _netOnLineHandler;
private _netOffLineHandler;
private innerReconnect;
private _connectStart;
private _reportConnectEventStart;
private _reportConnectEventEnd;
private _disConnect;
getNetworkTimeInfo(): {
timestamp: number;
maxDeviation: number;
};
setHeartBeatMode(mode: HeartBeatMode): void;
}