cdnbye
Version:
Let your viewers become your unlimitedly scalable CDN.
68 lines (60 loc) • 1.78 kB
TypeScript
export interface MemoryCacheLimit {
pc: number;
mobile: number;
}
export interface WsSignalerAddr {
main: string;
backup: string;
}
export enum LogLevel {
Warn = 'warn',
Error = 'error',
None = 'none',
}
export enum TrackerZone {
Europe = 'eu',
HongKong = 'hk',
USA = 'us',
}
export interface P2pConfig {
logLevel?: LogLevel | boolean;
live?: boolean;
wsSignalerAddr?: string | WsSignalerAddr;
announce?: string;
trackerZone?: TrackerZone;
memoryCacheLimit?: MemoryCacheLimit;
p2pEnabled?: boolean;
dcDownloadTimeout?: number;
webRTCConfig?: any;
useHttpRange?: boolean;
waitForPeer?: boolean;
waitForPeerTimeout?: number;
httpLoadTime?: number;
sharePlaylist?: boolean;
simultaneousTargetPeers?: number;
tag?: string;
token?: string;
appName?: string;
appId?: string;
showSlogan?: boolean;
trickleICE?: boolean;
geoIpPreflight?: boolean;
getStats?: (totalP2PDownloaded: number, totalP2PUploaded: number, totalHTTPDownloaded: number, p2pDownloadSpeed: number)=>void;
getPeerId?: (peerId: string)=>void;
getPeersInfo?: (peers: string[])=>void;
channelId?: ((m3u8Url: string)=>string) | string;
segmentId?: (streamId: string, sn: number, url: string, range: string)=>string;
validateSegment?: (segId: string, buffer: ArrayBufferLike)=>boolean;
}
export declare class P2pEngine {
static isSupported(): boolean;
static readonly version: string;
static readonly protocolVersion: string;
public readonly version: string;
constructor(hlsjs: any, p2pConfig?: P2pConfig);
enableP2P(): void;
disableP2P(): void;
destroy(): void;
on(name: string, func: (...args)=>void);
}
export default P2pEngine;