import EventEmitter from "eventemitter3"; import Manager from "./manager"; import { PeerICEMsg, PeerNode, PeerOptions, ServerOpenResonse } from "./types"; import ISocket from "../isocket"; import PeerSocket from "./peer.socket"; import SerialSocket from "../serial.socket"; type ServerEvent = { open: (data: { ip: string; }) => void; connection: (socket: PeerSocket) => void; error: (err: Error) => void; "id-taken": () => void; }; export default class Peer extends EventEmitter { readonly options: PeerOptions; static WebSocket: any; private peerNodes; private readonly aigoManager; manager: Manager; private _id; private _publicIp; private _rootSocket; private _serverEnableTurn; private _serverPeer; /** get list等获取数据使用 */ private _tasks; private static wsservers; signSocket: ISocket; private turn; serverInfo: ServerOpenResonse; get publicIp(): string; get rootSocket(): SerialSocket; get serverEnableTurn(): boolean; get id(): string; get serverPeer(): string; constructor(options: PeerOptions); getWSServer(): string; private connectPeerServer; private initPeerServerEvent; /** 连接peer节点 */ connect(peerId: string, callback: (socket: PeerSocket) => void): PeerSocket; getSocketBySessionId(peerId: string, sessionId: string): PeerSocket | null; private addSocket; send(data: PeerICEMsg): void; get total(): number; get totalAccept(): number; get totalConnect(): number; registryNode(node: PeerNode): void; getNode(peer: string): PeerNode | undefined; getList(): Promise<{ id: string; username: string; password: string; secret?: string; protocol: string; }[]>; private getByWS; } export {};