Atma
V2EX  ›  问与答

electron 下载限速

  •  
  •   Atma · Apr 11, 2025 · 1831 views
    This topic created in 396 days ago, the information mentioned may be changed or developed.

    目前客户端下载某个文件需要客户端进行限速,客户端下载类的实现使用 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 replies    2025-04-13 00:57:29 +08:00
    mumbler
        1
    mumbler  
       Apr 11, 2025
    项目代码交给 cursor ,让智商 130 的 gemini 2.5 pro 全权处理,你只管提需求,验证结果就行了,不要管它用什么方法实现
    renmu
        2
    renmu  
       Apr 13, 2025 via Android
    主进程自己实现一个下载
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3988 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:11 · PVG 13:11 · LAX 22:11 · JFK 01:11
    ♥ Do have faith in what you're doing.