私は WebRTC と Websockets の世界では初めてです。1 対 1 の Web ゲームを作ることに興味があります。問題は、単純な変数 (主に数値) をクライアントから他のクライアントに送信する方法です。
Webソケットを備えたNode.jsサーバーがあります(socket.io経由)。したがって、クライアントには 2 つの解決策があります。
- Websockets の使用: クライアント 1 は var をサーバーにプッシュし、サーバーは var をクライアント 2 にプッシュします。このソリューションにより、アプリケーションを 1 つのゲームで多くのユーザーに簡単に適応させることができます。
- WebRTC の使用: オファーと回答は、websocket を使用してサーバー経由で送信されます。次に、クライアント 1 が変数を DataChannel 経由でクライアント 2 にプッシュします (getUserData は必要ありません)。
サーバーの作業が楽になり、より多くのクライアントを管理できるようになるため、私は WebRTC を使用することを好みます。そこで、2 つのソリューションを比較するように設定したところ、大きな驚きがありました。Websocket は WebRTC よりも非常に高速です!
私のテストは簡単です。Three.js を使用して回転する立方体だけです。最初のクライアントは各フレーム (毎秒 60) で少し回転し、回転結果をクライアント 2 にプッシュします。受信時に、クライアント 2 は回転を更新し、与える。
Websockets では結果は完璧ですが、WebRTC ではクライアント 2 の実行が 5 FPS のように非常に遅くなります。
問題は私がやっている方法ですか?正常ですか?私は Firefox の localhost で作業しています。