이 프로젝트는 WebRTC를 사용하고 Rust로 프로그래밍하고 WASM으로 컴파일한 간단한 HTML 채팅을 보여줍니다. 라이브 데모
Cheerp 팀이 작성한 이 훌륭한 게시물을 읽은 후 저는 WASM을 사용하여 "순수한" Rust로 동일한 작업을 수행할 수 있는지 확인하고 싶었습니다.
게임을 처음부터 시작하는 것은 너무 복잡했기 때문에 첫 번째 단계에서는 채팅 애플리케이션을 사용하여 Rust, HTML(Yew 사용) 및 WebRTC를 따라 플레이하는 것을 목표로 했습니다. 3D와 WebGL은 다음에 나올 것입니다.
아래에서 볼 수 있듯이 무언가를 작동시키는 것은 그리 어렵지 않습니다.
로컬에서 실행하려는 경우 Firefox에서 문제가 발생했기 때문에 로컬에서 Chrome을 사용하여 테스트하는 것이 좋습니다. 또한 일부 확장 프로그램은 WebRTC 연결을 차단할 수 있다는 점에 유의하세요. 또한 친구와 함께 테스트하는 경우에는 STUN 서버만 사용하므로 작동하지 않을 수도 있습니다. 테스트를 통해 기업 네트워크에서는 연결이 차단되는 경우가 많으며 TURN 서버를 사용하면 문제가 해결된다는 사실을 알게 되었습니다. 그러나 STUN 서버와 달리 무료 TURN 서버는 없습니다. 마지막으로, 실제로 오류를 어떻게 처리하는지(그리고 WebRTC API가 허용하는 작업도) 모르기 때문에 오류 처리가 아직 완전히 완료되지 않았습니다. 문제가 발생하면 양쪽 페이지를 다시 로드하고 다시 시도하세요.
이 프로젝트를 빌드하려면 다음을 수행해야 합니다.
cargo install wasm-pack
cargo install http-server
빌드 후 실행하려면 다음을 입력해야 합니다.
wasm-pack build --target web --no-typescript --out-dir ./static/pkg
사용하여 코드 컴파일http-server -p 8080
사용하여 static
디렉토리에서 웹 서버를 실행합니다. (또는 python3 -m http.server
와 같은 정적 파일 서버를 사용할 수도 있습니다.)