Импортировать 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>
Установите PearDownloader в проекте с помощью npm:
npm install peardownloader --save
Затем вы можете использовать метод require
, чтобы импортировать PearDownloader:
var PearDownloader = require('Peardownloader');
Статический метод, который проверяет, поддерживает ли текущий браузер 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 )