我有一個 go 程式(https://github.com/klauspost/cpuid),我在終端中運行它,它運行得非常好。我想讓它像在瀏覽器中運行的服務一樣。我看到的唯一可能的方法是將其編譯為 wasm 二進制檔案并靜態提供檔案。
但問題是,終端和瀏覽器中的輸出是不同的。我在這里缺少什么嗎?
- go 代碼在上面共享的 repo 中可用
- 程式被編譯為 wasm 使用
GOOS=js GOARCH=wasm go build -o test.wasm test.go - 靜態服務的js代碼
const http = require('http');
const nStatic = require('node-static');
// wasm file is in public folder.
// wasm_exec.js is used which is available in go installtion
const fileServer = new nStatic.Server('./public');
const PORT = 8000;
http.createServer(function (req, res) {
fileServer.serve(req, res);
}).listen(PORT);
在瀏覽器中
在終端
uj5u.com熱心網友回復:
雖然最終兩者都在同一個 CPU 上運行,但這在技術上并不正確。WASM 是虛擬 CPU 的位元組碼。該位元組碼被大多數瀏覽器翻譯成機器位元組碼,然后執行。但它確保了從這個虛擬機幾乎無法訪問真機,除非他接受了 API。因此,無論它們最有可能落在哪里,或者被虛擬函式取代,等等都會回傳錯誤代碼或虛擬值,這些錯誤代碼或虛擬值的選擇方式可以與真實值區分開來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/484041.html
