0

你使用的是什么版本的这个包?

webtorrent@0.107.17

webtorrent-hybrid@4.0.2

什么操作系统、Node.js 和 npm 版本? 操作系统:Linux Lite 5(64 位)

Node.js:14.15.1

npm:6.14.8

发生了什么?

我通常按​​照文档初始化客户端。像这样:

this.webTorrentClient = new WebTorrentHybrid({tracker: true, dht: true});

但是,我只是想将我的 torrent 切换为私有,这样它就不会发布到 DHT、PEX 和 LSD。我特别需要禁用 LSD。我再次按照文档,添加了 opts 并像这样放入私有标志:

this.webTorrentClient.add(magnetUri, {private: true}, (torrent) => {
        //did my task here
      });

在奇怪地这样做时,我收到了这个错误,指出这个特定的属性在 torrent 选项中不存在

Argument of type '{ private: boolean; }' is not assignable to parameter of type 'TorrentOptions'.
  Object literal may only specify known properties, and 'private' does not exist in type 'TorrentOptions'

在面对这个错误时,我最初认为 WebTorrentHybrid 的选择可能与 WebTorrent 不同,但是当我获取文档时,他们说它完全一样。然后我尝试改用private: true.seed方法,但收到了同样的错误。

或者我想,因为我只想禁用 LSD 并挖掘提交历史,我发现还添加了一个禁用 LSD 的选项。(参考这里的提交 ID:https ://github.com/webtorrent/webtorrent/commit/0ba67b8e8f54d888ba0dd14a6e5f4a18d46e1294 )。所以我试着把lsd: false两个都放进去.add.seed但还是没有骰子。同样的错误。

在这一点上,我觉得也许我以错误的格式传递了选择,但尝试了其他选择。他们工作得很好。我试着把path: '/mnt/drive1/'两者都放进去.add.seed就像这样:

this.webTorrentClient.add(magnetUri, {path: '/mnt/drive1/'}, (torrent) => {
        //did my task here
      });

它工作得非常好,同样我试过maxWebConns: 3了,这也奏效了!出于某种原因,在我的情况下,只有 private 和 lsd 似乎不起作用。快速谷歌搜索显示没有其他人有类似的问题,我很困惑!

我一直在关注这里的官方文档:https ://webtorrent.io/docs

4

1 回答 1

0

对于任何面临同样问题的人。我通过使用这些命令手动更新以下软件包解决了上述问题:

npm update --save/--save-dev
npm install webtorrent@latest --save-dev
npm install @types/webtorrent@latest --save-dev

我曾在寻求解决这个问题的过程中,运行npm update --save/--save-dev了几次。但是由于某种原因,即使没有任何重大更改,这些软件包也没有更新。通过运行意识到它们已经过时npm outdated,然后使用上面的命令手动更新解决了它!

于 2020-12-13T18:10:32.133 回答