1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/PearInc-PearDownloader.js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
api.md 8.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 02:49 69fc092

Документация для PearDownloader

Импорт

Импортировать PearDownloader можно двумя способами: через тег <script> или с помощью npm.

Импорт через тег <script>

Сначала импортируйте pear-downloader.min.js через тег <script>:

<script src="./dist/pear-downloader.min.js"></script>

или используйте CDN:

<script src="https://cdn.jsdelivr.net/npm/peardownloader@latest"></script>

Установка с помощью npm

Установите PearDownloader в проекте с помощью npm:

npm install peardownloader --save

Затем вы можете использовать метод require, чтобы импортировать PearDownloader:

var PearDownloader = require('Peardownloader');

API для PearDownloader

PearDownloader.isWebRTCSupported()

Статический метод, который проверяет, поддерживает ли текущий браузер WebRTC.

if (PearDownloader.isWebRTCSupported()) {
  // Поддерживается WebRTC
  
} else {
  // Используйте альтернативный вариант
  
}

var downloader = new PearDownloader(url, token, opts)

Создает новый экземпляр PearDownloader, где url — это URL файла для скачивания, а token — это токен авторизации, полученный при входе на сервер Pear, действует в течение семи часов.Параметр opts позволяет указывать конкретные конфигурации для PearDownloader. Описание полей приведено ниже:

{
  scheduler: 'WebRTCFirst',                          // алгоритм планирования узлов, по умолчанию IdleFirst, другие встроенные алгоритмы включают "WebRTCFirst" и "CloudFirst"
  auto: true,                                        // загружать все ли файлы, по умолчанию true
  interval: 5000,                                    // интервал окна скользящего среднего, в миллисекундах, по умолчанию 10000
  useDataChannel: true,                              // использовать ли канал данных, по умолчанию true
  dataChannels: 20,                                  // максимальное количество создаваемых каналов данных, по умолчанию 20
  useTorrent: false,                                 // использовать ли браузер P2P (основанный на Webtorrent), по умолчанию true
  magnetURI: magnetURI,                              // можно передать magnetURI вручную, но сначала нужно установить useTorrent как true
  trackers: ["wss://tracker.openwebtorrent.com"],    // можно передать серверы трекера вручную, но сначала нужно установить useTorrent как true
  sources: ['http://example.com/a'],                 // указывает источники загрузки, после добавления этого поля PearDownloader больше не будет запрашивать узлы у сервера, рекомендуется иметь более чем пять источников для обеспечения плавной работы
  useMonitor: true,                                  // использовать ли мониторинг, может немного влиять на производительность, по умолчанию false
  debug: false,                                      // использовать ли режим отладки, если включен, логи будут доступны в консоли, по умолчанию true
}
``````markdown
  algorithm: 'push'                                 # алгоритм загрузки, есть два варианта  'push' и 'pull', по умолчанию 'push'. Push  это нерегулярная загрузка, но скорость загрузки выше, чем у pull
}
```## `downloader.on('fallback', function() {} )````Функция обратного вызова, которая срабатывает при возникновении ошибки в downloader. Рекомендуется использовать её для выполнения действий по снижению уровня сервиса, например, перехода на использование дефолтного скачивателя.

## `downloader.on('error', function (error) {})`

Это событие происходит после того, как PearDownloader завершает свою инициализацию. Вы можете получить общую длину файла через fileLength и количество частей, в которые разделён файл, через chunks (каждый chunk имеет размер 1М).

## `downloader.on('begin', function (fileLength, chunks) {})`

Событие, которое срабатывает после завершения процесса скачивания PearDownloader.

## `downloader.on('done', function () {})`

Это событие позволяет отслеживать прогресс скачивания PearDownloader (отношение количества скаченных байтов к общему количеству байтов). (useMonitor должно быть установлено в true)

## `downloader.on('progress', function (downloaded) {})`

Это событие позволяет отслеживать среднюю скорость скачивания cloud (узел сервера) в КБ/с. (useMonitor должно быть установлено в true)

## `downloader.on('cloudspeed', function (speed) {})`

Это событие позволяет отслеживать среднюю скорость скачивания узлов fog (включая WebRTC и HTTP) в КБ/с. (useMonitor должно быть установлено в true)

## `downloader.on('fogspeed', function (speed) {})`

Это событие позволяет отслеживать общее соотношение скорости скачивания узлов fog (включая WebRTC и HTTP) (отношение количества скаченных байтов от узлов fog к общему количеству скаченных байтов). (useMonitor должно быть установлено в true)

## `downloader.on('fogratio', function (p2pRatio) {})`## `downloader.on('sourcemap', function (sourceType, index) {})`

Это событие происходит каждый раз, когда скачивается новый буфер. `sourceType`  это строка, которая указывает источник скачивания данного буфера. Возможные значения `sourceType` следующие: (useMonitor должно быть установлено в true)
* null: данный буфер еще не был скачан
* s: server, скачивание с сервера (по протоколу HTTP)
* n: node, скачивание с узла (по протоколу HTTP)
* d: data channel, скачивание с узла (по протоколу WebRTC)
* b: browser, скачивание с другого браузера (по протоколу WebRTC)

`index`  это соответствующий индекс.

## `downloader.on('traffic', function (mac, size, type) {})`
Это событие позволяет отслеживать текущий трафик каждого узла, где `mac`  это MAC адрес узла, `size`  мгновенная скорость скачивания узла (в байтах), а `type`  тип узла (http, datachannel и т.д.). (useMonitor должно быть установлено в true)

Для получения информации о том, как использовать API, пожалуйста, обратитесь к примеру [`../examples/downloader-test.html`](/examples/downloader-test.html).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/PearInc-PearDownloader.js.git
git@api.gitlife.ru:oschina-mirror/PearInc-PearDownloader.js.git
oschina-mirror
PearInc-PearDownloader.js
PearInc-PearDownloader.js
master