/// import EventEmitter from "eventemitter3"; import ISocket from "../../isocket"; import SerialSocket from "../../serial.socket"; import { StreamEvent, ReadyState } from "../../types"; import IOSocket from "../../io.socket"; /** * 桥接socket */ export default class AigoSocket extends EventEmitter implements ISocket { readonly rootSocket: SerialSocket; readonly sessionId: string; private _destroyed; private _open; private _readable; private _writable; type: "accept" | "connect"; private readonly _id; private readonly _ioSocket; private pidConnectTimeout; private pidKeeyAlive; private pidHeartbeat; private _lastHeartbeat; private keepAliveTime; get id(): string; get rootId(): string; get writable(): boolean; get readable(): boolean; get remoteAddress(): string; get remotePort(): number; get localAddress(): string; get localPort(): number; get destroyed(): boolean; get readyState(): ReadyState; get ioSocket(): IOSocket; isPaused(): boolean; get readableLength(): number; get writableLength(): number; constructor(rootSocket: SerialSocket, sessionId: string); heartbeat(): void; private initEvent; /** * 通知客户端连接已经打开 */ notifyClientOpen(): void; /** * 连接远程主机 * @param port * @param host * @param callback */ connect(port: number, host: string, callback: () => void): void; turn(port: number, host: string, callback: () => void): void; read(ttl?: number): Promise; write(chunk: string | Buffer): boolean; end(chunk?: string | Buffer): void; pipe(socket: AigoSocket): AigoSocket; pause(): void; resume(): void; destroy(err?: Error | undefined): void; close(err?: Error): void; private clear; setTimeout(ttl: number): void; setKeepAlive(enable: boolean, ttl?: number): void; }