私が取り組んでいる一般的なターンベースのゲームがあり、現在その動作方法は次のとおりです。boneCP (接続プール)、MySQL データベース、Java サーバー、Android クライアント、およびすぐにスレッドプールを使用します。
クライアントがサーバーにリクエストを送信します。Java サーバーは、要求を処理するために新しいスレッドを生成します。サーバーが応答を送信します。TCP ソケットが終了します。
各クライアントは、永続的な (長期的な) 接続の負荷を維持するのではなく、単純に (x) 間隔ごとにサーバーを突いて、自分の番かどうかを尋ねます。いいえの場合、何もしません。はいの場合、入力して移動をサーバーに送信できます。
このタイプのサーバープロディング ネットワーキングでは、すべてを NIO に変換することで何らかのメリットが得られるでしょうか? クライアントは通常、TCP ソケットを介して数行のテキストなど、非常に小さなデータのみを送信します。サーバーが大きなファイル (画像、音声、ビデオ) をクライアントに送信することはめったにありません。このアプリケーションで IO/NIO を使用することについて、他に何か考えはありますか? これにより、作成されたスレッドの最大数でボトルネックが取り除かれ、スケーラビリティが拡張されるのではないかと思います.1秒程度しか持続しない場合でも.
編集: また、注意: プレイヤー A が 30 ~ 60 秒以上待ってからターンを行うと、そのターンは没収されます。したがって、無限ループでサーバーを永遠に突っ込んでいるわけではありません。せいぜい5秒間隔で数回です。また、ゲームが没収されるまでのターン没収回数には上限があります。