7

私が開発しているマルチプレイヤー ゲームでユーザーが p2p をプレイできるようにしたかったのですが、それを可能にするには、javascript がブラウザーでソケット サーバーを作成できる必要があります。それは可能ですか?クライアントがJavaScriptで他のクライアントに接続できるAPIを知りません。他に方法はありますか?隠しフラッシュ要素を使用したいですか?

サーバーをまったく必要としないものを求めています。パケットはクライアントからクライアントに直接移動する必要があります

4

7 に答える 7

6

この質問は古いですが、私は今答えを出すことができます: はい、ブラウザ間で p2p 通信を行う方法がついにあります! 新しい標準のWebRTCのおかげで、最新のブラウザはデータ チャネルをサポートするようになりました。これは、WebSocket よりもはるかに強力なものです。

ここを見てください:

WebRTC データ チャネル

オンラインの例: Banana Bread 3Dは、マルチプレイヤー モードで WebRTC データ チャネルを使用して、JS+WebGL にコンパイルされたファースト パーソン シューティング ゲームです。

BananaBread 3D マルチプレイヤー オンライン fps ゲーム

于 2014-08-13T20:36:12.723 に答える
6

つまり、ブラウザでの p2p は不可能です。

あなたが得ることができる最も近いものは、NodeJS(潜在的にp2p JSの場合)または集中型サーバー(または複数のサーバー)とwebsockets(ブラウザのソケット用)を使用することです

于 2012-04-22T23:49:26.837 に答える
4

興味深い質問ですが、おそらく重複しています:

これは、(すべてのブラウザーで) JavaScript のみを使用して実行できないことは確かです。上記のトピックの Stackoverflow に関する別の回答によると、 rtmfp-apiを使用してこれを実行できる場合があります。

このプロジェクトは、Rtmfp プロトコル (Flash バージョン 10 で提供) を非表示の Flash アプレットを介して JavaScript アプリケーションに公開します。このプロトコルにより、複数のクライアントが直接通信できます。プロトコルの詳細については、参考文献を参照してください。

サイトをざっと見てみると、まだrtmfpUrl中間にサーバーが必要です。これは、クライアントがお互い (IP) を見つけることができる必要があるため、完全に理解しています。しかし、その後はp2pになると思います。簡単な検索を行うと、オープンソースの rtmfp-server(s)も見つかりました。

私はこれを自分で試したことはありませんが、これはあなたの目標を達成するのに役立つかもしれません.

その他のリンク:

于 2012-04-23T00:03:41.523 に答える
0

これが mobl による解決策です(ただし、まだ試していません)。

http://zef.me/3391/moving-the-server-to-the-browser

于 2013-02-21T00:39:50.453 に答える
0

これは買い物に関する質問ですが、私はAPEを検討します

http://www.ape-project.org/

少なくとも、彼らがそれをどのように構成したかを確認することができます.

于 2012-04-22T23:45:01.580 に答える
0

このようなゲームを実装するには、JavaScript クライアントがサーバーと通信する必要があります。次に、サーバーはゲーム ロジックを実行し、結果をクライアントに送り返します。

  • JavaScript はユーザー入力を受け取り、それをサーバーに送信します
  • サーバーは入力が有効であることを確認し (チートを防ぐため)、新しい入力でゲームを更新します。
  • サーバーは定期的にゲームの状態を JavaScript に送信します (ロング ポーリングまたは JS が間隔を置いて要求することにより)。

基本的に、JavaScript は非常に簡単に変更できるため、絶対に信用しないでください。すべてをサーバー側で行う必要があります。

于 2012-04-22T23:46:58.257 に答える