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