WebTorrent - это потоковая торрент -клиент для node.js и браузер . Да, это верно. Браузер. Он написан полностью в JavaScript - языке Интернета - поэтому один и тот же код работает в обоих времени.
В node.js этот модуль является простым торрент -клиентом, использующим TCP и UDP, чтобы поговорить с другими торрентными клиентами.
В браузере WebTorrent использует WEBRTC (каналы данных) для однорангового транспорта. Его можно использовать без плагинов браузера, расширений или установок. Это просто javascript ™. Примечание. WebTorrent не поддерживает сверстников UDP/TCP в браузере.
Просто включите скрипт webtorrent.min.js на вашей странице, чтобы начать извлечение файлов через WEBRTC, используя протокол BitTorrent, или import WebTorrent from 'webtorrent' с браузероизмом или WebPack. См. Демо -приложения и примеры кода ниже.
Чтобы сделать BitTorrent работать над WEBRTC (который является единственным транспортом P2P, который работает в Интернете), мы внесли некоторые изменения протокола. Таким образом, клиент WebTorrent на основе браузера или «веб-контроль» может подключаться только к другим клиентам, которые поддерживают WebTorrent/WEBRTC.
Для семян файлов для веб-пиров используйте клиента, который поддерживает WebTorrent, EG WebTorrent Desktop, настольный клиент со знакомым пользовательским интерфейсом, который может подключаться к веб-контактам, веб-контактам, веб-сайтам, программой командной строки или instant.io, веб-сайту. Созданные клиенты, такие как Vuze, уже добавили поддержку WebTorrent, чтобы они могли подключаться как к обычным , так и к веб -контактам. Мы надеемся, что другие клиенты последуют.
<video> ( webm, mkv, mp4, ogv, mov, etc (AV1, H264, HEVC*, VP8, VP9, AAC, FLAC, MP3, OPUS, Vorbis, etc) Для установки WebTorrent для использования в узле или браузере с import WebTorrent from 'webtorrent' , запустите:
npm install webtorrent Чтобы установить программу командной строки webtorrent , запустите:
npm install webtorrent-cli -gЧтобы установить настольное приложение WebTorrent для Mac, Windows или Linux, см. Desktop WebTorrent.
#webtorrent , чтобы помочь с разработкой или пообщаться с некоторыми безумными научными хакерами :)Много людей!
Прочитайте полную документацию API.
WebTorrent - это первый клиент BitTorrent, который работает в браузере, используя открытые веб -стандарты (без плагинов, только HTML5 и WEBRTC)! Это легко начать!
import WebTorrent from 'webtorrent'
const client = new WebTorrent ( )
const magnetURI = '...'
client . add ( magnetURI , torrent => {
// Got torrent metadata!
console . log ( 'Client is downloading:' , torrent . infoHash )
for ( const file of torrent . files ) {
document . body . append ( file . name )
}
} ) import dragDrop from 'drag-drop'
import WebTorrent from 'webtorrent'
const client = new WebTorrent ( )
// When user drops files on the browser, create a new torrent and start seeding it!
dragDrop ( 'body' , files => {
client . seed ( files , torrent => {
console . log ( 'Client is seeding:' , torrent . infoHash )
} )
} )Есть больше примеров в Docs/Get-Started.md.
WebTorrent прекрасно работает с Browserify, пакетом NPM, который позволяет использовать Node-style redect () для организации кода вашего браузера и загрузки модулей, установленных NPM (как видно из предыдущих примеров).
WebTorrent также работает с WebPack, еще одним модулем. Тем не менее, WebPack требует дополнительной конфигурации, которую вы можете найти в конфигурации пакета WebPack, используемой WebTorrent.
Или вы можете просто использовать предварительно построенную версию через import WebTorrent from 'webtorrent/dist/webtorrent.min.js' и пропустить конфигурацию WebPack.
WebTorrent также доступен в качестве автономного сценария ( webtorrent.min.js ), который открывает WebTorrent на объекте window , поэтому его можно использовать с помощью только сценарического тега:
< script type =' module ' >
import WebTorrent from 'webtorrent.min.js'
</ script >Сценарий WebTorrent также размещен на быстрой, надежной инфраструктуре CDN (CloudFlare и MaxCDN) для легкого включения на ваш сайт:
< script type =' module ' >
import WebTorrent from 'https://esm.sh/webtorrent'
</ script > Если вы хотите использовать WebTorrent в приложении Chrome, вы можете включить следующий сценарий:
< script type =' module ' >
import WebTorrent from 'webtorrent.chromeapp.js'
</ script > Обязательно включите chrome.sockets.udp и chrome.sockets.tcp разрешения!
WebTorrent также работает в node.js, используя тот же пакет NPM! Это безумная наука!
ПРИМЕЧАНИЕ .
WebTorrent также доступен в качестве приложения командной строки. Вот как его использовать:
$ npm install webtorrent-cli -g
$ webtorrent --helpЧтобы скачать торрент:
$ webtorrent magnet_uriЧтобы транслировать торрент на такого устройства, как Airplay или Chromecast , просто пропустите флаг:
$ webtorrent magnet_uri --airplayЕсть много поддерживаемых вариантов потоковой передачи:
--airplay Apple TV
--chromecast Chromecast
--mplayer MPlayer
--mpv MPV
--omx [jack] omx [default: hdmi]
--vlc VLC
--xbmc XBMC
--stdout standard out [implies --quiet]В дополнение к Magnet Uris, WebTorrent поддерживает множество способов указать торрент.
Большая часть активной разработки происходит внутри небольших пакетов NPM, которые используются WebTorrent.
«Когда приложения сделаны хорошо, это просто действительно специфичный для приложения, солоноватый остаток, который нельзя так легко абстрагировать. Все красивые, многоразовые компоненты, натянутые на GitHub и NPM, где каждый может сотрудничать, чтобы продвинуть общину». - Supack от "Как я пишу модули"
Это основные модули, которые составляют WebTorrent:
| модуль | тесты | версия | описание |
|---|---|---|---|
| WebTorrent | Торрент -клиент (этот модуль) | ||
| BitTorrent-DHT | Клиент распределенной хеш -таблицы | ||
| BitTorrent-Peerid | Определите имя клиента/версию | ||
| BitTorrent-Protocol | BitTorrent Protocol Stream | ||
| BitTorrent-Tracker | BitTorrent Tracker Server/Client | ||
| BitTorrent-LSD | BitTorrent Local Service Discovery | ||
| Создать-Торрент | Создать .torrent файлы | ||
| Магнит-Ури | СПАСПОЛНЕНИЕ Магнит Uris | ||
| Parse-Torrent | Parse Torrent Identifiers | ||
| Торрент-раскрытие | Найдите сверстников через DHT, Tracker и LSD | ||
| UT_METADATA | Метаданные для магнитного URI (расширение протокола) | ||
| ut_pex | Открытие сверстников (расширение протокола) |
В узле включите журналы отладки, установив переменную среды DEBUG на имя модуля, который вы хотите отладить (например, bittorrent-protocol или * для печати всех журналов ).
DEBUG= * webtorrentВ браузере включите журналы отладки, запустив это в консоли разработчика:
localStorage . setItem ( 'debug' , '*' )Отключить, запустив это:
localStorage . removeItem ( 'debug' )Грань Copyright (C) Feross Aboukhadijeh and Webtorrent, LLC.