/// import EventEmitter from "eventemitter3"; import ISocket from "../isocket"; import { StreamEvent } from "../types"; import Peer from "./peer"; import Negotiator from "./negotiator"; type PeerSocketOptions = { remoteAddress: string; localAddress?: string; }; /** * 封装最终对外使用的简易类 */ export default class PeerDataSocket extends EventEmitter implements ISocket { readonly provider: Peer; private readonly _id; private _peer; private _source; private _destroyed; private readonly _sessionId; socket: RTCDataChannel | null; options: PeerSocketOptions; type: "accept" | "connect"; private lastTime; private pidKeeyAlive; get peer(): string; get id(): string; get sessionId(): string; get source(): string; get writable(): boolean; get readable(): boolean; get remoteAddress(): string; get remotePort(): number; get localAddress(): string; get localPort(): number; get destroyed(): boolean; get readyState(): "open" | "opening" | "closed"; isPaused(): boolean; get readableLength(): number; get writableLength(): number; negotiator: Negotiator | null; constructor(provider: Peer, { peer, sessionId, source, negotiated }: { peer: string; source: string; sessionId?: string; negotiated: boolean; }); init(socket: RTCDataChannel, options: PeerSocketOptions): void; private initEvent; read(ttl?: number): Promise; write(chunk: string | Buffer, callback?: (err: Error) => void): boolean; end(chunk?: string | Buffer): void; pipe(socket: ISocket): ISocket; pause(): void; resume(): void; destroy(err?: Error | undefined): void; close(err?: Error): void; clear(): void; setKeepAlive(bool: boolean, ttl?: number): void; } export {};