p2p-media-loader-core
Version:
P2P Media Loader core functionality
30 lines (29 loc) • 1.19 kB
TypeScript
import { CoreEventMap, StreamConfig, StreamWithSegments } from "../types.js";
import { Peer } from "./peer.js";
import { EventTarget } from "../utils/event-target.js";
type P2PTrackerClientEventHandlers = {
onPeerConnected: (peer: Peer) => void;
onSegmentRequested: (peer: Peer, segmentExternalId: number, requestId: number, bytesFrom?: number) => void;
onSegmentsAnnouncement: () => void;
};
export declare class P2PTrackerClient {
private readonly stream;
private readonly eventHandlers;
private readonly config;
private readonly eventTarget;
private static readonly PEER_ID_BY_INFO_HASH;
private readonly streamShortId;
private readonly client;
private readonly _peers;
private readonly logger;
constructor(streamSwarmId: string, stream: StreamWithSegments, eventHandlers: P2PTrackerClientEventHandlers, config: StreamConfig, eventTarget: EventTarget<CoreEventMap>);
start(): void;
destroy(): void;
private onReceivePeerConnection;
private onTrackerClientWarning;
private onTrackerClientError;
peers(): Generator<Peer, void, unknown>;
private onPeerClosed;
static clearPeerIdCache(): void;
}
export {};