UNPKG

p2p-media-loader-core

Version:
24 lines 1.15 kB
import md5 from "nano-md5"; import { PACKAGE_VERSION } from "./version.js"; export const TRACKER_CLIENT_VERSION_PREFIX = `-PM${formatVersion(PACKAGE_VERSION)}-`; const HASH_SYMBOLS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; const PEER_ID_LENGTH = 20; export function getStreamHash(streamId) { // slice one byte to have 15 bytes binary string const binary15BytesHashString = md5.fromUtf8(streamId).slice(1); const base64Hash20CharsString = btoa(binary15BytesHashString); return base64Hash20CharsString; } export function generatePeerId(trackerClientVersionPrefix) { const trackerClientId = [trackerClientVersionPrefix]; const randomCharsCount = PEER_ID_LENGTH - trackerClientVersionPrefix.length; for (let i = 0; i < randomCharsCount; i++) { trackerClientId.push(HASH_SYMBOLS[Math.floor(Math.random() * HASH_SYMBOLS.length)]); } return trackerClientId.join(""); } function formatVersion(versionString) { const splittedVersion = versionString.split("."); return `${splittedVersion[0].padStart(2, "0")}${splittedVersion[1].padStart(2, "0")}`; } //# sourceMappingURL=peer.js.map