Подтвердить что ты не робот

Можно ли создать торрент-клиент, используя только HTML (5) и JavaScript?

Существует не так много, чтобы добавить. Можно ли создать торрент-клиент, используя только HTML и JavaScript. Вы не можете использовать такие вещи, как Java, ActiveX, NaCl... Если да, дайте описание высокого уровня.

У меня не так много знаний о интерфейсе, но я думаю, что веб-порты смогут выполнять сетевые взаимодействия (возможно ли подключить один клиент к другому, не имея всех данных через сервер?). Я знаю, что вы не можете писать файлы с использованием JavaScript, поэтому я думаю, что загружаемый файл либо должен быть полностью сохранен в памяти, либо клиент должен будет использовать один из новых API в HTML5 для хранения содержимого.

4b9b3361

Ответ 1

В недавней версии, основанной на WebRTC, которая работает в node и в браузере: https://github.com/feross/webtorrent

Ответ 2

Нет. Это не так.

Это связано с тем, что спецификация WebSocket выходит за рамки HTML5 и JavaScript;-) Говоря об этом, открывая вопрос "использование функций, поддерживаемых изначально в [прогрессивных/будущих] браузерах", затем...

... все еще нет: -)

Это связано с тем, что для установки с ограничениями для WebSocket требуется специальное рукопожатие. Это не бесплатный открытый TCP-фестиваль. Этот подход потребует либо

  • клиенты должны быть изменены для принятия запросов WebSocket (а также для решения любых проблем с доступом к межсайтовому доступу)

  • или, что более реалистично, сервер отказов

Ответ 4

Нет веских причин, почему это невозможно сделать сегодня. У BitTorrent/uTorrent есть код для поддержки соединений websocket с бинарными кадрами. Тем не менее, они в настоящее время скомпилированы без поддержки (из-за политических причин, по которым я думаю). Я работал в BitTorrent, а другой инженер (Arty) написал поддержку. Некоторое время было действительно здорово скачивать торренты на iPad с мобильного Safari. (достаточно сэкономить на Google Диске)

Трекеры HTTP могут быть настроены для отправки заголовков Access-Control-Allow-Origin.

Также протокол анонса трекера может использовать бит в поле "ключ", чтобы указать, что клиент принимает соединения веб-сокетов. Тогда специальный аргумент типа "typewant" может указывать на то, что ответ объявления должен возвращать только тех клиентов, которые отправили этот бит.

Протокол трекера также можно расширить аналогично согласованию поддержки соединений WebCTC P2P DataChannel, так что соединения могут быть сделаны непосредственно браузером ↔ браузером.

В настоящее время у нас есть API-интерфейс платформы chrome.socket и jstorrent, хром-пакетное приложение (предназначенное для ChromeOS в основном)

Ответ 5

Вы не можете использовать WebSockets, потому что это строго клиент-сервер. Но предстоящий стандарт WebRTC, в основном ориентированный на аудио- и видеоконференции, предоставляет обеспечение для общих клиент-данных передачи данных. Если это положение дойдет до окончательной версии, тогда у вас будет жизнеспособный способ реализации общих одноранговых передачи данных между браузерами.

Ответ 7

Я опаздываю на вечеринку, но поскольку этот вопрос по-прежнему входит в число лучших результатов Google, я все равно отвечу.

Вы можете писать веб-приложения, связанные с BitTorrent, или расширения браузера с помощью Btapp.js, который использует интерфейс Javascript, предоставляемый BitTorrent Torque. Когда вы вызываете метод подключения, пользователю будет предложено установить BitTorrent Torque, что и все. Некоторые интересные вещи продолжаются, если вы просматриваете существующие проекты, используя потоковые медиа, совместное использование перетаскивания и т.д.

Что касается решений без какой-либо зависимости, те, о которых говорил Ник Рассел, по-прежнему кажутся единственными возможными вариантами.