我对https://github.com/feross/webtorrent#usage中显示的示例有一些麻烦
我正在尝试在浏览器中使用代码。所以我首先创建一个名为app.js的文件

app.js

var WebTorrent = require('webtorrent')
var concat = require('concat-stream')

var client = new WebTorrent()
console.log('Hi there');
client.download('magnet:?xt=urn:btih:XXXXXXXX', function (torrent) {
  // Got torrent metadata!
  console.log('Torrent info hash:', torrent.infoHash)

  torrent.files.forEach(function (file) {
    // Get the file data as a Buffer (Uint8Array typed array)
    file.createReadStream().pipe(concat(function (buf) {

      // Append a link to download the file
      var a = document.createElement('a')
      a.download = file.name
      a.href = URL.createObjectURL(new Blob([ buf ]))
      a.textContent = 'download ' + file.name
      document.body.appendChild(a)
    }))
  })
})

然后,我键入命令browserify app.js > bundle.js,以便使代码适用于浏览器。我创建另一个名为index.html的文件:

index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>test</title>
    <script src="bundle.js"></script>
</head>

<body id="home">

    <h1>test</h1>


</body>
</html>

从控制台中,我只能看到“Hi there”。似乎client.download()函数无法正常工作。为什么会这样呢?我是浏览器的新手,我使用的命令有什么问题吗?

最佳答案

WebTorrent只能下载明确播种到WebTorrent网络中的种子。洪流客户端需要支持WebRTC才能与Web浏览器建立对等关系。当前,没有客户端支持它,但是您可以使用http://instant.io开始播种新的种子,然后尝试使用应用程序中的WebTorrent库下载它。通过设置`localStorage.debug ='*'启用http://instant.io上的调试日志,以获取torrent的信息哈希。

您还可以在此处了解更多信息:

  • WebTorrent如何工作? (https://github.com/feross/webtorrent/issues/39)
  • WebRTC BEP(https://github.com/feross/webtorrent/issues/175)
  • 10-08 17:40