electron 下载限速

2025 年 4 月 11 日
 Atma

目前客户端下载某个文件需要客户端进行限速,客户端下载类的实现使用 DownloadItem https://www.electronjs.org/zh/docs/latest/api/download-item 查找相关的一些 api 发现: https://www.electronjs.org/docs/latest/api/session#sesenablenetworkemulationoptions

win.webContents.session.enableNetworkEmulation({
  latency: 500,
  downloadThroughput: 6400,
  uploadThroughput: 6400
})

但是添加一直没有效果,没有起作用,我们使用的 Electron 版本是 24.8.8 ,查找官方 issue

https://github.com/electron/electron/issues/21250 怀疑和这个相关,下面有个哥们有这个方案,我也尝试发现 dbg.sendCommand('Network.enable') 这里这里报错了,try catch 跳出了

const dbg = myWebContents.debugger
dbg.attach()
await dbg.sendCommand('Network.enable')
await dbg.sendCommand('Network.emulateNetworkConditions', {offline: true, latency: 0, downloadThroughput: -1, uploadThroughput: -1})

所以想了解下有木有其他客户端伙伴实现过相关的方案,我也考虑过其他一些方案 1.升级 Electron 版本,addon 和一些语法需要适配
2. 使用 node-libcur ,两套下载类需要统一 这两种代码的改动都会稍微大一点

2153 次点击
所在节点    问与答
2 条回复
mumbler
2025 年 4 月 11 日
项目代码交给 cursor ,让智商 130 的 gemini 2.5 pro 全权处理,你只管提需求,验证结果就行了,不要管它用什么方法实现
renmu
2025 年 4 月 13 日
主进程自己实现一个下载

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1124871

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX