Il n'y a pas beaucoup plus à ajouter. Est-il possible de construire un client torrent en utilisant uniquement du HTML et JavaScript. Vous ne pouvez pas utiliser des choses comme Java, ActiveX, NaCl ... Si oui, donnez une description de haut niveau. Je n'ai pas beaucoup de connaissances sur le front end dev, mais je pense que les websockets seront capables de faire du networking (est-il possible de connecter un client à un autre sans que toutes les données passent par un serveur?). Je sais que vous ne pouvez pas écrire des fichiers en utilisant JavaScript, donc je pense que le fichier téléchargé devra être sauvegardé complètement dans la mémoire, ou le client devra utiliser l'une des nouvelles API en HTML5 pour stocker du contenu.Est-il possible de construire un client torrent en utilisant seulement HTML (5) et JavaScript?
Répondre
Il y a une mise en œuvre récente basée sur WebRTC qui fonctionne dans le noeud et le navigateur: https://github.com/feross/webtorrent
Non, ce n'est pas le cas.
En effet, la spécification WebSocket se situe en dehors de HTML5 et JavaScript ;-) Cela dit, l'ouverture de la question « en utilisant les fonctionnalités supportées nativement dans les navigateurs [progressifs /] à venir », puis ...
... toujours non :-)
Ceci est dû au fait que WebSocket nécessite une prise de contact spéciale pour la configuration avec restrictions. Ce n'est pas un open-TCP-fest gratuit pour tous. L'approche nécessiterait soit
clients à modifier pour accepter les demandes de WebSocket (ainsi que traiter des problèmes d'accès intersites)
ou, de façon plus réaliste, un serveur de rebondir à travers
1. Serai-je capable de faire cette modification ou devra-t-elle être faite par les développeurs des navigateurs? 2. Toutes les informations passeront-elles par le serveur (comme dans chaque bit de chaque fichier indexé par le tracker) ou seulement par la poignée de main? Merci! – quilby
@quilby 1. La modification doit être * par client acceptant les requêtes WebSocket * (lire: * autres clients torrent * - des restrictions "inter-domaines" sont imposées, comme avec XHR etc., ce qui rendrait toujours cette approche inutilisable) 2) Toutes les informations, éventuellement cryptées via TLS de * client vers serveur * (mais pas du serveur vers d'autres clients). De plus, WebSocket n'établit pas de mécanisme pour accepter les demandes entrantes (bien que le serveur en jeu puisse faire beaucoup de choses intéressantes). Certains clients torrent rechignent à ne pas pouvoir faire de back-connections et refusent même de jouer. –
@quilby Certains clients torrent prennent en charge diverses méthodes de cryptage (sur l'en-tête ou le flux entier). Cela ne devrait pas être considéré comme fournissant une sorte de vraie vie privée et serait juste un autre problème à traiter. –
Vous ne pouvez pas avec WebSockets car ce sont strictement client-serveur. Mais la prochaine norme WebRTC, tout en étant principalement destinée aux conférences audio/vidéo, a un provision pour les transferts de données client-client génériques. Si cette disposition parvient à la version finale, vous disposez d'un moyen viable de mettre en œuvre des transferts de données peer-to-peer génériques entre les navigateurs.
comment est-il possible que ces lib existe l'événement bien que les réponses ci-dessus indiquent qu'il est impossible de le construire? Edit: je suppose que c'est parce qu'ils dépendent de node.js et qu'ils ne peuvent pas exécuter côté client dans le navigateur (nativly) ... –
C'est parce que ce sont des clients torrent de navigateur web, ce sont des scripts node (côté serveur Javascript). – adalal
Ceci est possible grâce Chrome Apps APIs: chrome.socket et chrome.fileSystem.
Il existe au moins une implémentation JavaScript pure pour Google Chrome: JSTorrent.
Je suis en retard à la fête, mais comme cette question est toujours parmi les meilleurs résultats de Google, je répondrai quand même.
Vous pouvez écrire des applications Web liées à BitTorrent ou des extensions de navigateur avec Btapp.js, qui utilise une interface Javascript fournie par BitTorrent Torque. Lorsque vous appelez la méthode connect, l'utilisateur sera invité à installer BitTorrent Torque, c'est tout. Des trucs sympas se passent si vous regardez des projets existants en les utilisant - streaming media, glisser-déposer, etc.
Quant aux solutions sans aucune dépendance, celles mentionnées par Nick Russler semblent toujours être les seules possibles options
Il n'y a pas de bonne raison que cela ne puisse être fait aujourd'hui. BitTorrent/uTorrent ont tous les deux un code pour prendre en charge les connexions websocket avec des trames binaires. Cependant, ils sont actuellement compilés sans soutien (pour des raisons politiques/de produits je pense). Je travaillais chez BitTorrent et un autre ingénieur (Arty) a écrit le support. Pendant un moment, c'était vraiment cool de pouvoir télécharger des torrents sur des iPads à partir de Safari mobile. (enregistrer directement sur Google Drive de manière assez amusante)
Les trackers HTTP peuvent être configurés pour envoyer des en-têtes Access-Control-Allow-Origin.
Le protocole d'annonce de suivi peut également utiliser un bit dans le champ "clé" pour indiquer que le client accepte les connexions de socket Web. Alors un argument spécial comme "typewant" pourrait indiquer que la réponse d'annonce devrait renvoyer seulement les clients qui ont envoyé ce bit.
Le protocole de suivi pourrait également être étendu de manière similaire à la négociation de la prise en charge des connexions WebRTC P2P DataChannel, de sorte que les connexions puissent être effectuées directement par navigateur < -> navigateur.
Pour l'instant, nous avons l'API de la plate-forme de chrome.socket et jstorrent, une application Chrome emballé (conçu pour ChromeOS principalement)
- 1. Comment diffuser une vidéo à partir d'un torrent en utilisant HTML 5?
- 2. Client torrent Silverlight
- 3. Comment créer des fichiers torrent en utilisant javascript
- 4. lightbox en html 5 et javascript
- 5. Construire HTML en code Java seulement
- 6. Manipulation audio en utilisant HTML 5/JavaScript/éventuellement flash?
- 7. PROTOCOLE DLNA dans Client Torrent
- 8. construire une fileuse controll en page HTML en utilisant javascript
- 9. HTML 5 et Javascript Glisser-Déposer
- 10. Lire un fichier audio en utilisant HTML 5 et jsp
- 11. veut convertir RSS en html en utilisant seulement javascript
- 12. Téléchargement de fichier en utilisant HTML 5, Javascript et l'API de fichier
- 13. Comment construire un client OpenFire basé sur JavaScript et Flash
- 14. Construire une jauge circulaire html 5 canvas
- 15. Développer avec HTML et Javascript seulement?
- 16. XCode 5: Comment construire la configuration de débogage seulement
- 17. Est-il possible de définir dynamiquement le destinataire de MAILTO: avec seulement HTML et JavaScript?
- 18. Filtrage HTML et JavaScript (jQuery) en utilisant un script simple
- 19. Tri côté client avec html et Javascript
- 20. problèmes en utilisant un StringBuilder pour construire HTML en C#
- 21. Construire un texte à partir de html en utilisant xpath
- 22. Comment faire des contrôles pour epub en utilisant HTML 5, JavaScript et CSS?
- 23. Tirer un wiki en HTML en utilisant php et javascript
- 24. HTML 5 et GPGPU
- 25. Interface de l'onglet HTML en utilisant seulement CSS
- 26. HTML 5 Internet-explorer-8 html javascript
- 27. liste déroulante en utilisant javascript et html
- 28. div diapositive en utilisant javascript et html
- 29. construire un enregistrement en utilisant une tâche de rake et un code ruby de gratter html
- 30. Créer Excel Format de sortie en utilisant HTML et JavaScript
Je suppose que la question est plus vers: Y at-il un noeud "navigateur"? http://browserver.org/ –
github.com/popcorn-official/popcorn-app: Référentiel indisponible en raison du retrait DMCA. –