import EventEmitter from "eventemitter3"; import PeerDataSocket from "./peer.data.socket"; import { PeerICEMsg } from "./types"; type ServerEvent = { connect: (socket: PeerDataSocket) => void; offer: (data: { data: any; dst: string; }) => void; answer: (data: { data: any; dst: string; }) => void; candidate: (data: { data: any; dst: string; }) => void; }; /** * 连接握手 */ export default class Negotiator extends EventEmitter { readonly socket: PeerDataSocket; readonly options: { negotiated: boolean; }; private rtc; private provider; private dstPeer; private destroyed; private isAnswer; private candidates; private candidatesKeys; get peer(): string; constructor(socket: PeerDataSocket, options: { negotiated: boolean; }); private startConnection; private send; close(): void; private clear; private initEvent; /** * 监听rtc事件 */ private _setupRtcEvent; /** * * @param dstPeerId 目标peer id */ createOffer(dstPeerId: string): Promise; handleOffer({ data, dst }: { data: any; dst: any; }): Promise; handleAnswer({ dst, data }: { dst: any; data: any; }): Promise; handleCandidate({ type, candidate }: { type: any; candidate: any; }): void; createDataChannel(): void; } export {};