V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Atma
V2EX  ›  问与答

electron 下载限速

  •  
  •   Atma · 12 天前 · 940 次点击

    目前客户端下载某个文件需要客户端进行限速,客户端下载类的实现使用 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 ,两套下载类需要统一 这两种代码的改动都会稍微大一点

    2 条回复    2025-04-13 00:57:29 +08:00
    mumbler
        1
    mumbler  
       12 天前
    项目代码交给 cursor ,让智商 130 的 gemini 2.5 pro 全权处理,你只管提需求,验证结果就行了,不要管它用什么方法实现
    renmu
        2
    renmu  
       11 天前 via Android
    主进程自己实现一个下载
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 00:12 · PVG 08:12 · LAX 17:12 · JFK 20:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.