私はWebRTCとWebsocketsの世界では新しいです。私は1対1のウェブゲームを作ることに興味があります。 問題はちょうど:クライアントから他のクライアントに簡単な変数(主に数値)を送る方法は?WebRTCよりも速いWebソケット?
私は(socket.ioを介して)websocketsを持つNode.jsサーバーを持っています。
- WebSocketを使用:: だから、クライアントのために、私は2つのソリューションを持っているクライアント1プッシュサーバにvarと サーバークライアント2にVARをプッシュするこのソリューションは、私は簡単に自分のアプリケーションを適応させることを可能にします1つのゲームで多くのユーザーが利用できます。
- WebRTCの使用:オファーと回答は、Webソケットを使用してサーバー経由で送信されます。その後、データチャネルを介してクライアント2にクライアント1つのプッシュVARを(私はgetUserDataを必要としない)
それは彼がより多くのクライアントを管理することができ、サーバの作業を、容易にするので、私はのWebRTCを使用して好みます。 私は比較する2つのソリューションをセットアップし、大きな驚きました! WebSocketはWebRTCよりも非常に高速です!
私のテストは単純です:Three.jsを使用して回転するキューブだけで、最初のクライアントは各フレーム(毎秒60枚)で少し回転し、回転結果をクライアント2にプッシュします。受信時に、クライアント2回転とレンダリングを更新します。
ウェブソケットを使用すると結果は完璧ですが、WebRTCではクライアント2が5 FPSのように遅くなります。
問題は私がそれをやっている方法ですか?それは普通ですか? 私はFirefox上でlocalhostに取り組んでいます。
Chrome 31からは、信頼できるデータチャネルを可能にするFirefoxと同じように、デフォルトでSCTPが使用されていますが、実際には、信頼性の低い転送のパケットが実際にはほとんどありません。また、私が理解しているように、SCTPはダイナミックな輻輳制御を意味し、帯域幅の固定キャップではありません。 –
@SamDuttonこれはWebRTCに関する別の問題を実際に思い起こさせます。まだ初期段階にあり、APIや動作の変更は珍しくありません。 –
うわー、ありがとう!本当に、それはまさに私が何度も何も検索せずに検索したものです。 – Bambou