8

HTML5 (クライアント) と node.js (サーバー) を使用して、リアルタイムのマルチプレイヤー ゲームを作成したいとします。

サーバーからクライアントへ、またはその逆に非常に高速にデータを転送する必要があります。

ネイティブ アプリケーションではUDP、ほとんどのデータ (プレーヤーの位置など) に使用します。これは、データTCPが失われた場合よりもはるかに高速であり、重要ではないためです。

HTML5私は(のみ)使用できますWebSockets。WebSockets は TCP の上にあるため、優れたパフォーマンスを得るには十分な速度ではありません。

について聞いたWebRTCことがありますが、これがこの問題の解決策になるかどうかはわかりません。

誰もそれを経験したことがありますか?

(WebRTC はほとんどのブラウザーでまだサポートされていないことはわかっていますが、それは私にとっては問題ではありません。)

4

2 に答える 2

2

WebRTC に関して言えば、必要なのは DataChannel のようです:ドラフト プロトコルHTML5 Rocks の記事を参照してください(免責事項: 私が書きました!)

DataChannel は進行中の作業であり、まだどのブラウザーにも実装されていません。

他の WebRTC コンポーネントと同様に、MediaStream (getUserMedia) は Chrome、Firefox Nightlies、Opera でサポートされています。RTCPeerConnection は Chrome の安定版であり、フラグ (今後のバージョンではフラグなし) の背後にあり、2013 年第 1 四半期の Firefox 18 で約束されています。

編集: RTCDataChannel が Firefox と Chrome に実装されました。

Chrome の「単一ページ」のデモ: simpl.info/dcFirefox のデモ

于 2012-10-12T17:50:26.200 に答える
1

RTCDataChannel は、ネイティブ クライアントの TCP および UDP にそれぞれ類似した、セッションベースの / 信頼性の高いトランスポートと、コネクションレス / 非信頼性のトランスポートを提供します。詳細はこちら。2013 年現在、これは実行可能なテクノロジですが、後の Chrome および Firefox ビルドでのみ使用できます。

html5rocks.comによると、転送にバイナリ型を使用することも可能になりました。そのため、効率的なネイティブ UDP クライアントで得られるすべての機能を備えている必要があります。ただし、バイナリ転送が、修正された webrtc リポジトリからChrome に到達したのか、それともこの段階では Chrome Canary でのみ利用できるのかどうかはまだわかりません。

于 2014-07-23T16:06:02.003 に答える