COOP/COEP के साथ Wasm threads (SharedArrayBuffer) चालू करें
अगर आपका web game (या engine export) WebAssembly threads का इस्तेमाल करता है, तो यह अक्सर SharedArrayBuffer पर निर्भर रहता है। आधुनिक browsers इसके लिए cross-origin isolation ज़रूरी मानते हैं।
1) झटपट जाँच: क्या आप isolated हैं?
DevTools खोलें और यह चलाएँ:
js
self.crossOriginIsolatedअगर यह true है, तो आप SharedArrayBuffer के लिए सही security state में हैं।
आधिकारिक संदर्भ:
https://developer.mozilla.org/docs/Web/API/Window/crossOriginIsolated
2) आपको जिन दो headers की ज़रूरत है
ये response headers अपने HTML पर (और आम तौर पर पूरे app पर) भेजें:
http
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corpआधिकारिक संदर्भ:
https://web.dev/articles/why-coop-coephttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBufferhttps://developer.chrome.com/blog/enabling-shared-array-buffer/
3) "अब भी काम नहीं कर रहा" की सबसे बड़ी वजह: subresources
COEP: require-corp के साथ आपका page अब cross-origin resources को आज़ादी से embed नहीं कर सकता।
अगर आप कोई cross-origin script/image/worker/video वगैरह load करते हैं, तो उस resource को इनमें से किसी एक तरीके से opt in करना होगा:
- CORS (
Access-Control-Allow-Origin) या - CORP (
Cross-Origin-Resource-Policy)
आधिकारिक संदर्भ:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Cross-Origin_Resource_Policy
4) कॉपी/पेस्ट configs
Nginx
nginx
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Embedder-Policy "require-corp" always;Node / Express
js
app.use((req, res, next) => {
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin')
res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp')
next()
})Cloudflare Pages (_headers)
txt
/*
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp5) Debugging चेकलिस्ट
- Network panel में पुष्टि करें कि document response पर ये headers मौजूद हैं।
self.crossOriginIsolatedजाँचें।- blocked requests देखें (DevTools का आम message होता है "blocked … by COEP")।
- ऐसे किसी भी third-party script को हटाएँ या खुद host करें जो CORS/CORP को support नहीं करता।
संबंधित
- तेज़ी से load होने वाला web game ship करें
- 2026 में web games tech stack
- game logic के लिए Web Workers — ऐसे Workers का इस्तेमाल जिन्हें SharedArrayBuffer से फ़ायदा होता है
- WebSocket multiplayer बेसिक्स — ऐसे multiplayer games जिन्हें cross-origin isolation चाहिए
- Iframe में games embed करना — COOP/COEP headers iframe embeds को कैसे प्रभावित करते हैं
बाहरी संसाधन
- MDN: Cross-Origin-Opener-Policy — COOP header संदर्भ
- MDN: Cross-Origin-Embedder-Policy — COEP header संदर्भ
- web.dev: Making your website cross-origin isolated — प्रैक्टिकल deployment गाइड