Yew WebRTC Chat
1.0.0
该项目展示了一个使用 WebRTC 的简单 HTML 聊天,并使用 Rust 进行编程并编译为 WASM。现场演示
在阅读了 Cheerp 团队这篇精彩的文章后,我想看看是否可以使用 WASM 对“纯”Rust 完成同样的事情。
由于从头开始制作游戏作为第一步太复杂,因此我的目标是通过制作聊天应用程序来与 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
编译代码http-server -p 8080
在static
目录中运行 Web 服务器(或者您可以使用任何静态文件服务器,例如python3 -m http.server
)