2012-04-22 6 views
6

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

私はサーバーを一切必要としないものを求めています。パケットは、あなたは彼らがそれを構造化しましたどのようにチェックアウトすることができ、これはショッピングの質問ですが、私は非常に少なくとも、APE

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

に見てね直接

+0

[websockets](http://dev.w3.org/html5/websockets/)([チュートリアル](http://net.tutsplus.com/tutorials/javascript-ajax/start-using)をご覧ください。 -html5-websockets-today /))。クライアント間の通信を集中化するには、とにかくソケットサーバーが必要です。また、ブラウザのサポートはまだ限定されています。 – bfavaretto

+0

ええ、しかし、私はP2Pが必要です、特に集中サーバなし。 –

+0

それはちょうど不可能です。 – bfavaretto

答えて

0

クライアントからクライアントへ旅行する必要があります。

+0

サーバー側が必要です。私が望むものではありません。 –

0

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

  • JavaScriptが
  • Serverは入力が有効であることを保証します(不正行為を防ぐため)とサーバが定期的にJavaScriptにゲームの状態を送信し、新たな入力
  • でゲームを更新し、ユーザ入力を受け取り、それをサーバーに送信します(長いポーリングまたはJSがそれをある間隔で要求することによって)。

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

+0

あなたは私の質問に全く答えなかった。私はピアツーピアで、簡単なものが必要です。私はあなたがすでに投稿したものを知るために十分な集中マルチプレイヤーゲーム(RTSとMMORPGを含む)を開発しました。あなたは私の質問をほとんど読まない。 –

+0

"JavaScriptクライアント**はサーバーと通信する必要があります**"。それはp2pを行うことができないという意味です。まったく。可能であれば、あなたがすることは突然誰かに伝えられる危険にさらされていると想像してみてください... –

6

簡潔に言えば、ブラウザではP2Pができません。

あなたがまたは中央サーバ(または複数のサーバ)とWebSocketを(潜在的にJSをP2Pのために)NodeJSを使用している得ることができる最も近い

4

興味深い質問、おそらく重複(ブラウザでソケット用):

私は確かに、これは(すべてのブラウザで)のみJavaScriptを使用して行うことはできません知っています。上記のトピックのStackoverflowのanother answerによれば、rtmfp-apiを使ってこれを行うことができます。

このプロジェクトでは、Flashバージョン10で提供されているRtmfpプロトコルが、隠しフラッシュアプ​​レットを使用して JavaScriptアプリケーションに公開されています。プロトコル は、複数のクライアントが直接通信できるようにします。このプロトコルの詳細については、 の参考文献を参照してください。クライアントが(IPアドレス)をお互いを見つけることができるようする必要があるので、あなたはまだ私は完全に理解して途中でrtmfpUrl -serverを、必要とする現場ですぐに見ると

。しかし、私はそれがp2pになると仮定します。クイック検索をすると、私はまたopen-source rtmfp-server(s)が見つかりました。

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

他のいくつかのリンク:

4

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

こちらをご覧ください:

WebRTC Data Channels

をオンライン例:バナナブレッド3Dは、マルチプレイヤーモードでのWebRTCデータ・チャネルを使用して、JS +のWebGLにコンパイル最初の人のシューティングゲームです:

BananaBread 3D Multiplayer online fps game

0

Flashを使用してサーバーレスにすることは可能です。これはAdobe FlashのPeer to Peer機能で実現できます。私はかつてピア・ツー・ピア・チャットを書きました。欠点は、Actionscriptは死にかけている言語であり、将来はあまりサポートされない可能性があります。

生のクラスです。 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetGroup.html

自分で作成したくないリソースはこちらです。 http://www.as3gamegears.com/category/multiplayer/

サーバー側では軽いサーバーオプションが必要な場合。このnode.js拡張を試してください。
http://socket.io/

何らかのJavaソケットサーバーを使用することをお勧めします。 Electroserverは、当時のリーダーの1人でしたが、Unityのサポートを受け、数十万に拡張可能でした。私は彼らが苦しい時に落ちたと思うが。 Electroserverサイトは、いつかアクセスできませんでした。私はそこに他の人がいることを知っていますが、Electroserverは私が使った唯一のものです。

関連する問題