Teleport JavaScript API
INFO
Данный раздел содержит подробное описание JavaScript API Teleport SDK, доступного после подключения библиотеки на вашу веб-страницу.
Global Namespace teleport
Глобальный объект teleport доступен в контексте window после успешного подключения JavaScript-библиотеки Teleport.
console.log(window.teleport.version); // Пример доступа к свойствамСвойства teleport (Static Properties)
| Наименование | Тип данных | Описание |
|---|---|---|
version | string | Версия загруженного Teleport SDK. |
Quality | enum | Перечисление значений качеств видео. |
SegmentType | enum | Перечисление значений типов сегментов. |
PeeringMode | enum | Перечисление значений режимов пиринга. |
Методы teleport (Static Methods)
initialize(options)
Инициализирует экземпляр Teleport SDK.
Возвращаемый результат: Promise<ITeleportInstance>
Аргументы:
| Наименование | Тип данных | Описание |
|---|---|---|
options | ITeleportFactoryOptions | Параметры инициализации Teleport SDK. |
Пример:
let tlprt = await teleport.initialize({
apiKey: "APIKEY", // Ваш API-ключ
loader: {
type: "player plugin ID", // Идентификатор плагина плеера
params: {player: player} // Экземпляр плеера
}
});
await player.load("manifest url");Интерфейс ITeleportInstance
Экземпляр ITeleportInstance возвращается методом teleport.initialize() и предоставляет доступ к управлению пиринговой сетью, получению статистики и другим функциям SDK.
События ITeleportInstance
onPeeringModeChanged
Событие, вызываемое при изменении режима пиринга.
Сигнатура: (mode: PeeringMode) => void
Пример:
tlrpt.onPeeringModeChanged = (mode) => console.log(`current peering mode: ${teleport.PeeringMode[mode]}`);onPeerConnectionOpened
Событие, вызываемое при установке соединения с новым пиром.
Сигнатура: (peerId: string) => void
Пример:
tlrpt.onPeerConnectionOpened = (peerId) => console.log(`peer connected: ${peerId}`);onPeerConnectionClosed
Событие, вызываемое при разрыве соединения с пиром.
Сигнатура: (peerId: string) => void
Пример:
tlrpt.onPeerConnectionClosed = (peerId) => console.log(`peer disconnected: ${peerId}`);onSegmentLoaded
Событие, вызываемое при загрузке нового видео-сегмента.
Сигнатура: (segment: ISegment) => void
Пример:
tlrpt.onSegmentLoaded = (segment) => console.log(`segment loaded:`, segment);onSegmentUploaded
Событие, вызываемое при отдаче видео-сегмента в пиринговую сеть.
Сигнатура: (segment: ISegment) => void
Пример:
tlrpt.onSegmentUploaded = (segment) => console.log(`segment uploaded:`, segment);Свойства ITeleportInstance
| Наименование | Тип данных | Только для чтения | Описание |
|---|---|---|---|
version | string | true | Версия загруженного Teleport SDK. |
apiKey | string | true | API Key, с которым инициализирован Teleport. |
connectionId | string | true | Идентификатор текущего пира. |
connected | boolean | true | Флаг активности подключения к сигнальному серверу Teleport. |
peeringMode | PeeringMode | false | Текущий режим работы пиринга. |
Методы ITeleportInstance
buffering()
Метод для сигнализирования Teleport о возникновении буферизации в видео-плеере.
getStatTotals()
Возвращает суммарную статистику по трафику у текущего экземпляра Teleport.
Возвращаемый результат: IStatTotals
Пример:
console.log(tlprt.getStatTotals());getStatDetails()
Возвращает суммарную статистику по трафику в разрезе WebRTC-подключений у текущего экземпляра Teleport.
Возвращаемый результат: IStatDetails
Пример:
console.log(tlprt.getStatDetails());dispose()
Метод, уничтожающий экземпляр Teleport с корректным высвобождением всех ресурсов.
Возвращаемый результат: Promise<void>
getLoader()
Возвращает API текущего лоадера. API есть не у всех лоадеров, в случае его отсутствия возвращается undefined.
Возвращаемый результат: any
Перечисления (Enums)
Список доступных перечислений в глобальном namespace teleport.
Quality
Перечисление качеств видео-потока.
Доступные значения:
Q144PQ240PQ360PQ480PQ720PQ1080PQ4KOther
SegmentType
Перечисление типов сегментов.
Доступные значения:
UnknownVideoAudioCaptionOther
PeeringMode
Перечисление режимов пиринга для работы Teleport SDK.
Доступные значения:
Off- Пиринг выключен.Download- Пир может только скачивать контент из Teleport PDN (Peer-to-Peer Delivery Network).Upload- Пир может только раздавать контент в Teleport PDN.Full- Пир работает в полном режиме: скачивает и раздает контент.
Пример:
tlrpt.peeringMode = teleport.PeeringMode.Download;Интерфейсы (Interfaces)
Описание доступных TypeScript/JavaScript интерфейсов.
ITeleportFactoryOptions
Параметры для метода teleport.initialize().
| Наименование | Тип данных | Описание |
|---|---|---|
apiKey | string | API key для доступа к Teleport. Можно получить в личном кабинете. |
loader | IPluginOptions | Параметры для интеграции с видео-плеером. |
IPluginOptions
Параметры для настройки лоадера плеера.
| Наименование | Тип данных | Описание |
|---|---|---|
type | string | Идентификатор плагина для интеграции с плеером (например, shaka, hls-js, video-js, jwplayer, uppod-html5, clappr-dash, clappr-hls, sw). |
params | IPluginIntegrationOptions | Дополнительные параметры для интеграции с видео-плеером. |
IPluginIntegrationOptions
Параметры для конфигурации поведения плагинов к плеерам.
| Наименование | Тип данных | Описание |
|---|---|---|
manifestAcceptor | (url: string) => boolean | Функция для определения HTTP-запроса с манифестом видео-потока. |
segmentAcceptor | (url: string) => boolean | Функция для определения HTTP-запроса с видео-сегментом. |
urlCleaner | (url: string) => string | Функция для унификации URL-адресов видео-сегмента и манифеста. |
qualityGetter | (segmentUrl: string) => [Quality](#enums-quality) | Функция для определения качества активного видео-потока. |
segmentTypeGetter | (segmentUrl: string) => [SegmentType](#enums-segmenttype) | Функция для определения типа загружаемого сегмента. |
bufferSizeGetter | () => number | Функция для считывания текущего размера буфера у плеера. |
durationGetter | (segmentUrl: string) => number | Функция для считывания длительности запрашиваемого видео-сегмента. |
ISegment
JavaScript-объект, содержащий данные о видео-сегменте.
| Наименование | Тип данных | Описание |
|---|---|---|
timestamp | number | UNIX timestamp времени загрузки сегмента. |
result | ISegmentResult | Свойство с данными результата загрузки сегмента. |
request | ISegmentRequest | Свойство с данными запрошенного сегмента. |
timings | ISegmentTimings | Свойство с данными замеренных таймингов загрузки. |
ISegmentResult
Результат загрузки видео-сегмента.
| Наименование | Тип данных | Описание |
|---|---|---|
segmentId | string | Идентификатор сегмента. |
sourceId | CDN | PDN | Источник, из которого был скачан сегмент (CDN или PDN). |
targetId | string | undefined | Идентификатор пира, с которого был скачан сегмент, если sourceId = PDN. |
range | string | undefined | Диапазон скачанных байтов сегмента. |
flags | number | Флаги загрузки. |
haves | number | Количество пиров с указанным сегментом в рое. |
waitTimeout | number | Таймаут ожидания из Teleport PDN. |
downloadTimeout | number | Таймаут загрузки из Teleport PDN. |
size | number | Размер сегмента в байтах. |
swarmSize | number | Размер роя (количество активных пиров в сети). |
connected | boolean | Флаг активности соединения с сигнальным сервером Teleport. |
mode | PeeringMode | Текущий режим пиринга. |
active | boolean | Флаг активности Teleport PDN. |
ISegmentRequest
Данные о запрошенном видео-сегменте.
| Наименование | Тип данных | Описание |
|---|---|---|
url | string | Исходный URL сегмента. |
uri | string | Унифицированный URI сегмента после обработки urlCleaner. |
quality | Quality | Текущее качество видео-потока. |
type | SegmentType | Тип сегмента. |
duration | number | Длительность сегмента в секундах. |
bufferSize | number | Размер буфера в плеере в секундах. |
ISegmentTimings
Замеренные тайминги загрузки видео-сегмента.
| Наименование | Тип данных | Описание |
|---|---|---|
req_start | number | UNIX timestamp времени запроса сегмента плеером (начало запроса). |
tthave | number | Дельта ожидания сегмента в Teleport PDN (время до первого ответа пира). |
ttsent | number | Дельта времени инициализации загрузки (время до отправки запроса). |
ttfb | number | Дельта ожидания первого чанка (Time To First Byte). |
ttlb | number | Дельта окончания загрузки сегмента (Time To Last Byte). |
ttfinish | number | Дельта окончания обработки сегмента и передачи данных в плеер. |
IStatTotals
Суммарная статистика по трафику.
| Наименование | Тип данных | Описание |
|---|---|---|
cdn | ITraffic | Статистика загрузки с CDN. |
pdn | ITraffic | Статистика загрузки с Teleport PDN. |
upload | ITraffic | Статистика отдачи в Teleport PDN. |
IStatDetails
Детальная статистика по трафику в разрезе WebRTC-подключений.
| Наименование | Тип данных | Описание |
|---|---|---|
totals | IStatTotals | Суммарная статистика загрузки. |
details | Array<[IStatDetailsRow](#interfaces-istatdetailsrow)> | Статистика загрузки в разрезе WebRTC-соединений. |
IStatDetailsRow
Строка детальной статистики для каждого пира.
| Наименование | Тип данных | Описание |
|---|---|---|
id | string | Идентификатор пира. |
download | ITraffic | Статистика загрузки с пира. |
upload | ITraffic | Статистика отдачи пиру. |
ITraffic
Статистические данные по трафику.
| Наименование | Тип данных | Описание |
|---|---|---|
size | number | Объем трафика в байтах. |
count | number | Количество сегментов. |
time | number | Время загрузки в миллисекундах. |
speed | number | Скорость загрузки в мегабитах в секунду. |