这是一个创建于 410 天前的主题,其中的信息可能已经有所发展或是发生改变。
各位大佬,我之前把三维图形程序编译成 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 条附言 2024-08-26 15:24:08 +08:00 目前看来受 Electron 的 contextIsolation 影响很大,上下文还是要必须隔离,这样子 wasm 运行就不受影响了
5 条回复 2024-08-26 16:23:43 +08:00  | | 1 lisongeee 2024-08-26 10:58:13 +08:00 你可能需要展示 electron 版本或者给出复现仓库以便大伙更好排查问题 |
 | | 2 LuckyLauncher 2024-08-26 13:38:33 +08:00 1 electron 分 main 进程和 render 进行,首先你要搞清楚你的 wasm 跑在哪个进程上 |
 | | 3 LLaMA2 2024-08-26 15:03:04 +08:00 The V8 platform used by this instance of Node does not support creating Workers 看错误信息是运行环境和代码要求的环境不匹配等原因引起的.
费解的是你都用上了 electron, 为什么还要费劲上 wasm.
直接编译三维图形程序为适用于各平台的动态链接库, 然后调用就好啦. wasm 性能损失,功能受限.何苦! |
 | | 4 seanwhy 2024-08-26 15:23:01 +08:00 @ LLaMA2 甲方还有网页端。。。还要支持国产操作系统,所以要一套吃遍 |
 | | 5 hhacker 2024-08-26 16:23:43 +08:00 虽然不知道 op 是怎么写导致的问题, 但是至少 electron 21 下是可以跑 wasm 的, 因为我就是在这下面用了 wasm |