0

マルチプレイヤー ゲームで、別のプレイヤーがゲームに参加したときにサーバーがクライアントにデータを送信する必要があります。このために、私は必要だと考えてきました:

  1. ソケット
  2. X秒ごとにAjaxリクエスト

しかし、今は遅延 ajax について考えています。クライアントがサーバーに「プレイヤーはゲームに参加しましたか?」と尋ねると想像してください。サーバーは現在応答しませんが、そのプレーヤーが入るのを待ってから、最初のクライアントに「はい、プレーヤー2がゲームに参加しました」と応答します。

では、サーバー上のリソースについてはどうでしょうか。サーバー リソースではどちらのアプローチが軽いでしょうか?

  1. ソケット
  2. 遅延 ajax

遅延した ajax が接続を開いたままにしていると思うので、それほど素晴らしいことではありませんが、それについて教えてください。

ありがとう

4

1 に答える 1

0
  1. 「遅延AJAX」に必要なロングポーリングの実装であるCometテクノロジーがあります。
  2. もう 1 つのオプションは WebSockets ですが、これは非常に新しい機能であり、多くのブラウザーではサポートされていません。
  3. プレーン ソケットは、大量のトラフィック (一定の ajax ポーリングを伴う) を必要とせず、「実際の全二重」を処理できる限り、最も簡単な方法です。レイテンシが優先される場合の最良の選択。
  4. ゲームが大規模な場合、最適な方法はノンブロッキング IO + Reactor パターンを使用することです。これにより、サーバー上で何百万ものリクエストを同時に処理できます。そして、ソケットのような方法で。3 とは異なり、メモリ消費量がはるかに少なくなります。
于 2013-10-22T20:00:43.977 に答える