zego-express-engine-webrtc
Version:
zego webrtc express sdk
35 lines (34 loc) • 1.43 kB
TypeScript
/// <reference types="node" />
import { ZegoLogger } from './zego.entity';
import { StateCenter } from './stateCenter';
export declare class HttpRetryHandler {
protected _zgp_logger: ZegoLogger;
protected _zgp_stateCenter: StateCenter;
attempt: number;
_zgp_baseInterval: number;
_zgp_capInterval: number;
_zgp_retryRule: number;
retryTimer: NodeJS.Timeout | null | number;
maxTimer: NodeJS.Timeout | null | number;
isOverTime: boolean;
requestInfo: any;
sucCallBack: Function | undefined;
failCallBack: Function | undefined;
RETRY_MAX_TIME: number;
_err: any;
constructor(_zgp_logger: ZegoLogger, _zgp_stateCenter: StateCenter);
/**
* 0: 默认规则 -> 基础间隔 0.3s, 前两次 attempt 视作 0,第三次开始使用正常 attempt,最大 _zgp_capInterval 4.8s,即 0.3s、0.3s、1.2s、2.4s、4.8s
* 1: 特殊规则1(gateway 返回 429 或 5XX),基础间隔 0.3s,attempt 从 2 开始,最大 cap 32s,即 0.3s、0.3s、1.2s、2.4s...32s
* @param rule
*/
setRetryRule(rule: number): void;
getRetryDelayByCount(attempt: number): Promise<number>;
initCallback(sucCallBack: Function, failCallBack: Function): void;
startMaxTime(): void;
invalid(): void;
clearRetryTimer(): void;
requestFail(err?: any): void;
stopMaxTime(): void;
resetCallback(): void;
}