このプロジェクトでは、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
-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
のような静的ファイル サーバーを使用することもできます)