Skip to content

Instantly share code, notes, and snippets.

@WiggleWizard
Created May 11, 2023 20:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save WiggleWizard/b8d268605e9a53739ed4b0590deb0bab to your computer and use it in GitHub Desktop.
Save WiggleWizard/b8d268605e9a53739ed4b0590deb0bab to your computer and use it in GitHub Desktop.
Starting a local test HTTP server for Godot compatible apps/games (includes CORS and SharedArrayBuffer)
import sys
import socketserver
from http.server import SimpleHTTPRequestHandler
class WasmHandler(SimpleHTTPRequestHandler):
def end_headers(self):
# Include additional response headers to allow for use of the
# SharedArrayBuffer in Firefox.
self.send_header("Cross-Origin-Opener-Policy", "same-origin")
self.send_header("Cross-Origin-Embedder-Policy", "require-corp")
SimpleHTTPRequestHandler.end_headers(self)
# Python 3.7.5 adds in the WebAssembly Media Type. If this is an older
# version, add in the Media Type.
if sys.version_info < (3, 7, 5):
WasmHandler.extensions_map['.wasm'] = 'application/wasm'
if __name__ == '__main__':
host = sys.argv[1] if len(sys.argv) > 2 else '0.0.0.0'
port = int(sys.argv[len(sys.argv)-1]) if len(sys.argv) > 1 else 8000
with socketserver.TCPServer(("", port), WasmHandler) as httpd:
print("Listening on port {}. Press Ctrl+C to stop.".format(port))
httpd.serve_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment