โปรเจ็กต์นี้แสดงการแชท HTML อย่างง่ายโดยใช้ WebRTC และตั้งโปรแกรมด้วย Rust และคอมไพล์เป็น WASM การสาธิตสด
หลังจากอ่านโพสต์ที่ยอดเยี่ยมนี้โดยทีมงาน Cheerp ฉันอยากจะดูว่าจะทำแบบเดียวกันนี้กับ Rust "บริสุทธิ์" โดยใช้ WASM ได้หรือไม่
เนื่องจากการสร้างเกมตั้งแต่เริ่มต้นนั้นซับซ้อนเกินไปเป็นขั้นตอนแรก ฉันจึงตั้งเป้าที่จะเล่นร่วมกับ Rust, HTML (โดยใช้ Yew) และ WebRTC โดยการใช้แอปพลิเคชันแชท 3D และ WebGL จะมาอีกครั้ง
ปรากฎว่าการทำงานบางอย่างให้ได้ผลนั้นไม่ใช่เรื่องยากอย่างที่คุณเห็นด้านล่าง:
หากคุณพยายามเรียกใช้ในเครื่อง ควรทดสอบกับ Chrome ในเครื่อง เพราะฉันพบปัญหากับ Firefox นอกจากนี้ โปรดระวังด้วยว่าส่วนขยายบางรายการอาจบล็อกการเชื่อมต่อ 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
static
ด้วย http-server -p 8080
(หรืออีกวิธีหนึ่งคุณสามารถใช้เซิร์ฟเวอร์ไฟล์แบบคงที่เช่น python3 -m http.server
)