///
///
import EventEmitter from "eventemitter3";
import ISocket from "./isocket";
import AigoSocket from "./helpers/aigo/aigo.socket";
import { ReadyState, SocketType, StreamEvent } from "./types";
import { net } from "../adapter";
import WSocket from "./wsocket";
import { PeerDataSocket } from "./peer";
type AcceptSocket = net.Socket | WSocket | PeerDataSocket | AigoSocket | IOSocket;
/**
* 封装最终对外使用的简易类ss
*/
export default class IOSocket extends EventEmitter implements ISocket {
readonly socket: AcceptSocket;
readonly options?: {
sessionId?: string | undefined;
events?: {
data?: ((chunk: Buffer) => void) | undefined;
close?: (() => void) | undefined;
error?: ((error: Error) => void) | undefined;
timeout?: (() => void) | undefined;
connect?: (() => void) | undefined;
} | undefined;
} | undefined;
private readonly _id;
private _sessionId;
private _destroyed;
type: SocketType;
get id(): string;
get sessionId(): 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 readableLength(): number;
get writableLength(): number;
private readonly __events;
constructor(socket: AcceptSocket, options?: {
sessionId?: string | undefined;
events?: {
data?: ((chunk: Buffer) => void) | undefined;
close?: (() => void) | undefined;
error?: ((error: Error) => void) | undefined;
timeout?: (() => void) | undefined;
connect?: (() => void) | undefined;
} | undefined;
} | undefined);
isPaused(): boolean;
/**
* data 事件中, 对获取的数据做处理并返回
* @param data
* @returns
*/
protected onDataHandle(data: Buffer): Buffer;
private __initEvent;
read(ttl?: number): Promise;
write(chunk: string | Buffer): any;
end(chunk?: string | Buffer): void;
pipe(socket: ISocket): ISocket;
pause(): void;
resume(): void;
destroy(err?: Error): void;
close(err?: Error): void;
clear(): void;
setKeepAlive(enable: boolean, initialDelay: number): void;
}
export {};