go webassembly experiments をローカルPCで動かす
2020/03/14
■これからは「C/C++ → Go」と「JavaScript → Webassembly」とシフトしながら色々やっていこうと思っている
■正直、どっちも難しい。そういう時は、サンプルをパクって勉強するのが正解 ―― と思っている
■取り敢えず、https://github.com/stdiopt/gowasm-experiments にある、 https://stdiopt.github.io/gowasm-experiments/bouncy/ をローカルで動かせるようになろう、と考えた
Uncaught (in promise) TypeError: Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
この「Expected 'application/wasm'.」がどうにも、不味いらしい ―― が、解決方法が、どうにも見つからない
#!/usr/bin/env python3 import http.server import socketserver PORT = 8080 Handler = http.server.SimpleHTTPRequestHandler Handler.extensions_map.update({ '.wasm': 'application/wasm', }) socketserver.TCPServer.allow_reuse_address = True with socketserver.TCPServer(("", PORT), Handler) as httpd: httpd.allow_reuse_address = True print("serving at port", PORT) httpd.serve_forever()
■動いた
■動かなかったら、chromo → 「設定」 → 「閲覧履歴データの削除」でキャッシュをクリアてみること
■Windows10の環境では、独自につくったmain.wasmを動かすと、Uncaught (in promise) LinkError: WebAssembly Instantiation: Import #1 module="go" function="runtime.scheduleCallback" error: function import requires a callable というエラーが出てくることがある。この場合は、Windows10のGoの環境にあるwasm_exec.jsをパクってくる。私の場合は、C:\Go\misc\wasm にあったので、そこから取ってきた。
以上