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

[求助] Electron 中运行 Webassembly 疑问

  •  
  •   seanwhy · 21 天前 · 968 次点击
    各位大佬,我之前把三维图形程序编译成 wasm ,能正常运行在浏览器上。但现在将它放在 electron 上调用,发现报错:Uncaught Error: The V8 platform used by this instance of Node does not support creating Workers 。
    这个报错表明 node 目前环境不支持 workers 。我 C++写的程序,里面确实用到了大量线程,也就是使用了 pthread ,浏览器端对应的其实就是 webworkers 。
    electron 里面的配置,比如:nodeIntegration: true,contextIsolation: false,也都设置了,均无什么用。
    现在比较迷,到底要修改哪部分内容,是我的 wasm 程序的编译指令?还是我的 wasm 具体实现?还是 electron 内部的配置?或是 electron 内部的调用实现?
    第 1 条附言  ·  21 天前
    目前看来受 Electron 的 contextIsolation 影响很大,上下文还是要必须隔离,这样子 wasm 运行就不受影响了
    5 条回复    2024-08-26 16:23:43 +08:00
    lisongeee
        1
    lisongeee  
       21 天前
    你可能需要展示 electron 版本或者给出复现仓库以便大伙更好排查问题
    LuckyLauncher
        2
    LuckyLauncher  
       21 天前   ❤️ 1
    electron 分 main 进程和 render 进行,首先你要搞清楚你的 wasm 跑在哪个进程上
    LLaMA2
        3
    LLaMA2  
       21 天前
    The V8 platform used by this instance of Node does not support creating Workers
    看错误信息是运行环境和代码要求的环境不匹配扥等原因引起的.


    费解的是你都用上了 electron, 为什么还要费劲上 wasm.

    直接编译三维图形程序为适用于各平台的动态链接库, 然后调用就好啦.
    wasm 性能损失,功能受限.何苦!
    seanwhy
        4
    seanwhy  
    OP
       21 天前
    @LLaMA2 甲方还有网页端。。。还要支持国产操作系统,所以要一套吃遍
    hhacker
        5
    hhacker  
       21 天前
    虽然不知道 op 是怎么写导致的问题, 但是至少 electron 21 下是可以跑 wasm 的, 因为我就是在这下面用了 wasm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:48 · PVG 03:48 · LAX 12:48 · JFK 15:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.