/// import EventEmitter from "eventemitter3"; import ISocket from "./isocket"; import { CMD, SocketType, StreamEvent } from "./types"; import IOSocket from "./io.socket"; import AigoManager from "./helpers/aigo/aigo.manager"; import AigoSocket from "./helpers/aigo/aigo.socket"; export type Header = { id: string; idx: number; total: number; sid: string; cmd: CMD; }; export type SegDataInfo = { list: { data: Buffer; idx: number; total: number; }[]; total: number; fillTotal: number; startTime: number; header: Header; }; export declare enum SerializationType { Binary = "binary", BinaryUTF8 = "binary-utf8", JSON = "json", String = "string" } type AcceptData = { headers: { host: string; port: number; }; }; export type SeiralStreamEvent = StreamEvent & { accept: (socket: AigoSocket, data: AcceptData) => void; turn: (socket: AigoSocket, data: AcceptData) => void; cmd: (cmd: CMD, sessionId: string, chunk?: Buffer | string) => void; heartbeat: () => void; }; /** * 流序列化socket类 */ export default class SerialSocket extends EventEmitter implements ISocket { readonly socket: IOSocket; readonly aigoManager?: AigoManager | undefined; private _id; type: SocketType; private dataTransform; private _destroyed; private pidHeartbeat; private _lastHeartbeat; private keepAliveTime; get id(): string; get sessionId(): string; get destroyed(): boolean; get writable(): boolean; get readable(): boolean; get remoteAddress(): string; get remotePort(): number; get localAddress(): string; get localPort(): number; get readyState(): import("./types").ReadyState; isPaused(): boolean; get readableLength(): number; get writableLength(): number; constructor(socket: IOSocket, aigoManager?: AigoManager | undefined); private heartbeat; pipe(socket: ISocket): ISocket; private initEvent; read(ttl?: number | undefined): Promise; pause(): void; resume(): void; destroy(err?: Error): void; close(err?: Error): void; private emitClient; /** * 往客户端写入数据 * @param data 数据 * @param secret 是否加密传输,默认加密 */ write(data: Buffer | string | ArrayBuffer | object, sessionId?: string): boolean; end(data: Buffer | string | ArrayBuffer | object | undefined, sessionId: string): void; writeCMD(cmd: CMD, sessionId: string, data?: Buffer | string | ArrayBuffer | object): boolean; connectCMD(sessionId: string, { host, port }: { host: string; port: number; }): void; turnCMD(sessionId: string, { host, port }: { host: string; port: number; }): void; setKeepAlive(enable: boolean, initialDelay: number): void; private handleCMD; } export {};