///
import { LinkedList, ListNode } from '../../entity/linkNode';
import { AccessHubMessageType, ConnectEvent, DestroyType } from '../../entity/AccessHubDefine';
import { AccessHubProtoBuf } from '../../protocol/AccessHubProtoBuf';
import { ZegoLink } from './ZegoLink';
import { NetSocketService } from './NetSocketService';
import { StateCenter } from '../stateCenter';
import { ZegoLogger } from '../../util/logger';
import { NetHeartBeatHandler } from '../NetHeartBeatHandler';
declare type MessageItem = {
data: any;
txid: number;
sendTime: number;
timeOut: number;
ack: boolean;
type: AccessHubMessageType;
streamID: number;
success: Function | null;
error: Function | null;
ackFunc: Function | null;
isSend: boolean;
isCheck: boolean;
};
export declare class ZegoWssLink extends ZegoLink {
private _appID;
private _env;
private _protobuf;
private _logger;
protected _stateCenter: StateCenter;
private proxyCtrl?;
socketService: NetSocketService;
urlIndex: number;
servers: string[];
updatedMsgTime: number;
unUpdateMsgTimeTypes: AccessHubMessageType[];
netLinkState: number;
sendCommandList: LinkedList;
unSendCommandList: LinkedList;
sendCommandMap: {
[index: number]: ListNode;
};
unSendCommandMap: {
[index: number]: ListNode;
};
private _sendDataCheckOnceCount;
private _sendDataDropTimeout;
private _sendDataCheckTimer;
private _sendDataCheckInterval;
private _timeout;
private _onConnectedEvent;
private _onConnectingEvent;
private _onDisConnectedEvent;
private _onPushEvent;
connectInterval: number;
connectTimer: NodeJS.Timeout | null | number;
connectRsp: {
suc?: Function;
fail?: Function;
};
unlogTypes: number[];
tryServers: string[];
tryConnectEvents: ConnectEvent[];
connectStartTime: number;
constructor(_appID: number, _env: number, _protobuf: AccessHubProtoBuf, _logger: ZegoLogger, _stateCenter: StateCenter, proxyCtrl?: any);
private _HBHandler;
set HBHandler(handler: NetHeartBeatHandler);
initEvent(onConnectedEvent: (servers: string[], connectEvents: ConnectEvent[]) => void, onDisConnectedEvent: (isReconnect: boolean) => void, onConnectingEvent: (isReconnect: boolean) => void, onPushEvent: (streamID: number, msgType: number, msg: any, extras?: any) => void): void;
createSocket(servers: string[]): void;
destroySocket(type: DestroyType, error?: {
code: number;
msg: string;
}): void;
refreshServers(servers: string[]): void;
connectSocket(isNext?: boolean, success?: Function, failCB?: Function): boolean;
bindSocketEvent(): void;
closeSocket(): void;
private _connectEvent;
resetConnect(): void;
release(): void;
isConnect(): boolean;
isDisConnect(): boolean;
isConnecting(): boolean;
setState(state: number): void;
closeHandler(handler: (evt: any) => void): void;
openHandler(handler: () => void): void;
errorHandler(handler: (evt: Event) => void): void;
sendMessage(type: AccessHubMessageType, streamID: number, body: any, isFirst?: boolean, success?: Function | null, error?: Function | null, ackFunc?: Function | null, option?: {
timeout?: number;
isInSendMap?: boolean;
extras?: any;
isMsgCache?: boolean;
}): void;
checkUnSendMsgs(messageList: LinkedList, messageMap: {
[index: number]: ListNode;
}): void;
private _Uint8ToArrayBuffer;
private sendUint8Data;
onMessage(): void;
isRspMsg(txid: number): boolean;
startCheck(): void;
stopCheck(): void;
private _checkMessageListTimeout;
private _checkSendMessageList;
protected handleSendCommandMsgRsp(streamID: number, msgType: number, txid: number, body: any, extras?: any): void;
}
export {};