基于 Webassembly 的发布问题

244 天前
 seanwhy
大家好,我又来了,基于我上个帖子,和同事们攻关这几个月,总算把 c++端图形程序移植到浏览器上了,运行效率还挺满意,但发布时就遇到问题了。本地开发时,在 chrome 启动参数上加--enable-features=SharedArrayBuffer ,那这样浏览器运行 webassembly 模块才不会报错。别的机器访问发布的 webassembly 也必须加上这个参数才能运行。
那问题就很明显了,有什么法子能在不修改访问机器浏览器启动参数的前提下,能正常访问我发布的 webassembly 模块网页?
有熟悉的大佬指点一二么,不甚感谢!
1642 次点击
所在节点    程序员
7 条回复
lisongeee
244 天前
根据 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer

需要实现安全上下文才可以使用,你给网站的响应头设置下面这些 header 了吗?

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
DOLLOR
244 天前
需要在页面的 HTTP 添加这两个报头
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp


参见
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements
seanwhy
244 天前
@lisongeee 周一我试试,之前好像在 nginx 配置中加过,难道我加的不对吗,是加载服务上么
mahaoqu
244 天前
https://web.dev/articles/cross-origin-isolation-guide?hl=zh-cn

本地服务器上开启只需要在 webpack 或者 vite 的配置上加一行就行,服务器就得改 Nginx 配置
seanwhy
244 天前
@mahaoqu https 是必备条件么
mahaoqu
244 天前
@seanwhy 安全上下文要求一定是 HTTPS 或者 localhost 。

https://developer.mozilla.org/zh-CN/docs/Web/Security/Secure_Contexts
flynaj
243 天前
https 是目前互联网的标配,不用纠结,测试可以用 acme.sh 申请个免费证书。
@seanwhy

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1045825

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX