Dieses Projekt zeigt einen einfachen HTML-Chat mit WebRTC, der in Rust programmiert und in WASM kompiliert wurde. Live-Demo
Nachdem ich diesen wunderbaren Beitrag des Cheerp-Teams gelesen hatte, wollte ich sehen, ob das Gleiche mit „reinem“ Rust und WASM möglich ist.
Da es als erster Schritt zu kompliziert war, ein Spiel von Grund auf neu zu erstellen, wollte ich einfach mit Rust, HTML (mit Yew) und WebRTC herumspielen, indem ich eine Chat-Anwendung erstellte. 3D und WebGL werden ein anderes Mal kommen.
Es stellt sich heraus, dass es nicht sehr schwierig ist, etwas zum Laufen zu bringen, wie Sie unten sehen können:
Wenn Sie versuchen, lokal auszuführen, testen Sie lieber lokal mit Chrome, da ich Probleme mit Firefox festgestellt habe. Seien Sie außerdem vorsichtig, dass einige Erweiterungen WebRTC-Verbindungen blockieren könnten. Außerdem funktioniert es möglicherweise nicht, wenn Sie mit einem Freund testen, da ich nur einen STUN-Server verwende. Bei den von mir durchgeführten Tests habe ich herausgefunden, dass die Verbindungen in Unternehmensnetzwerken häufig blockiert sind und die Verwendung eines TURN-Servers das Problem lösen würde. Aber im Gegensatz zum STUN-Server gibt es keine kostenlosen TURN-Server. Schließlich ist die Fehlerbehandlung noch nicht vollständig abgeschlossen, da ich nicht weiß, wie ich tatsächlich mit Fehlern umgehe (und auch nicht, was mir die WebRTC-API ermöglicht). Wenn Sie nicht weiterkommen, laden Sie die Seite auf beiden Seiten neu und versuchen Sie es erneut.
Um dieses Projekt zu erstellen, müssen Sie:
cargo install wasm-pack
cargo install http-server
Um es nach dem Erstellen auszuführen, müssen Sie etwas eingeben
wasm-pack build --target web --no-typescript --out-dir ./static/pkg
static
Verzeichnis mit http-server -p 8080
aus (Alternativ können Sie einen beliebigen statischen Dateiserver wie python3 -m http.server
verwenden.)