GoLang 및 WebAssembly를 사용하여 채팅 서비스 구축(2부)
4645 단어 chatwebassemblygo
이것은 소스 코드 구조입니다.
소스 코드 => Github Link
Go에서 크로스 컴파일된 Hello World WebAssembly 프로그램:
Go로 간단한 Hello World 프로그램을 작성하고 WebAssembly로 크로스 컴파일하고 브라우저에서 실행해 보겠습니다.
1) 먼저 장치에 golang 컴파일러를 설치해야 합니다 => golang
2) 새 프로젝트로 디렉토리 생성:
mkdir golangChatWebAssembly
cd golangChatWebAssembly
3) golangChatWebAssembly 모듈을 생성해 보겠습니다.
go mod init golangChatWebAssembly
4) main.go 파일을 생성하자
mkdir app && cd app
touch main.go
5) 지원서를 내용으로 채우자
앱/main.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Go Web Assembly")
}
6) 이제 앱을 만들 차례입니다.
이 명령은 go 애플리케이션을 기본 파일로 컴파일합니다. wasm(wasm 바이트코드 포함)은 웹 어셈블리의 실행 가능한 모듈입니다.
Linux 또는 MacOS가 있는 경우 하단 명령을 사용하십시오.
GOOS=js GOARCH=wasm go build -o ./html/main.wasm .
Windows OS가 있는 경우 build.bat 파일을 만든 다음 실행하는 것이 좋습니다.
touch build.bat
build.bat 파일에 다음 구문을 작성합니다.
SET GOOS=js
SET GOARCH=wasm
go build -o ./html/main.wasm .
SET GOOS=windows
SET GOARCH=amd64
그런 다음 명령줄에서 실행합니다: .\build.bat
7) 자바스크립트 글루
이미 논의한 바와 같이( ) WebAssembly는 JavaScript와 함께 존재해야 합니다. 따라서 방금 만든 WebAssembly 모듈을 가져오고 브라우저에서 실행하려면 일부 JavaScript 글루 코드가 필요합니다. 이 코드는 Go 설치에서 이미 사용할 수 있습니다. 계속해서 html 디렉토리에 복사해 봅시다.
cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" ./html/
위의 명령은 WebAssembly를 실행하기 위한 글루 코드가 포함된 wasm_exec.js를 html 디렉토리에 복사합니다.
Windows OS에서는 이 파일link 에서 wasm_exec.js를 다운로드한 다음 파일을 html 폴더에 복사합니다.
8) 웹 어셈블리에 대한 애플리케이션 호출로 HTML 페이지를 만들어야 합니다.
app/html 디렉토리에 index.html 생성:
<html>
<head>
<meta charset="utf-8"/>
<script src="wasm_exec.js"></script>
<script>
if (!WebAssembly.instantiateStreaming) {
WebAssembly.instantiateStreaming = async (resp, importObject) => {
const source = await (await resp).arrayBuffer();
return await WebAssembly.instantiate(source, importObject);
};
}
const go = new Go();
WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject).then(result => {
go.run(result.instance);
});
</script>
</head>
</html>
9) 웹 서버도 필요합니다.
Go에서 간단한 웹 서버를 만들어 봅시다
cd ..
mkdir server && cd server
touch server.go
이 소스 코드로 server.go를 채우십시오.
package main
import (
"log"
"net/http"
)
const (
AddSrv = ":8080"
TemplatesDir = "../app/html/"
)
func main() {
fileSrv := http.FileServer(http.Dir(TemplatesDir))
err := http.ListenAndServe(AddSrv, fileSrv)
if err != nil {
log.Fatalln(err)
}
}
10) 그런 다음 서버를 시작합니다.
섬기는 사람/
go run server.go
브라우저에서 주소를 열고
http://127.0.0.1:8080
"DevTools > console"에서 출력을 볼 수 있습니다.
웹 어셈블리로 이동
3부에서는 채팅 서비스 아키텍처에 대해 공부할 예정입니다😉
Reference
이 문제에 관하여(GoLang 및 WebAssembly를 사용하여 채팅 서비스 구축(2부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/taherfattahi/build-a-chat-service-using-golang-and-webassembly-part-2-1e4l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)