1

チャットをサポートするマルチプレイヤーWebゲームアプリケーションを構築したいと思います。アプリケーションは何百もの同時接続を処理する必要があると思います。

アプリケーションを共有Webホスティングでホストすることを計画していますが、これには次の制限があります(PHP + Comet(ロングポーリング)スケーリング/ホストに類似している可能性があります)。

  • Webサーバーを変更できないようです。ほとんどの場合、Apacheを使用しています。
  • MySQL 5、PHP 5.3.x、Perl、Python、Ruby on Rails、CGIをサポート

(より正確には、HawkHostの共有Webホスティングを使用します。)

そして、これが私の研究結果であり、その後に私の質問が続きます:

  1. 一部のリソース(Python Comet Serverなど)では、PHPは同時接続の処理には適していないが、Pythonの方が適していると述べています。これは本当ですか?
  2. 「データが変更されるまで無限にループする」を使用して、PHPで長いポーリング手法を試しました(ただし、開いている接続が放棄された場合のCometの問題のように、正しく実装されているかどうかはわかりません)。方法。これはほとんど機能します。残りの問題は、ブラウザが閉じられたときにサーバープロセスが停止しないことです(サーバーは接続が終了したことを認識せず、データが変更されることはありません)。PHPがブラウザが終了したかどうかを検出して、ループを停止する方法はありますか?

私は答えを探すためにどこでも探していましたが、それでも私は何も結論付けることができません。このトピックはStackOverflowでも何度も質問されていますが、繰り返し聞こえる場合は申し訳ありません>。<。

現在、PHP、MySQL、およびJQueryforJSを使用してコーディングできます。コメットとサーバープッシュという用語はまだ初めてです。必要に応じて、Pythonのような新しいスクリプト言語も学びたいと思っています。

プロジェクトを開始するために使用するスクリプト言語、フレームワーク、および手法についての洞察に感謝します。

4

2 に答える 2

2

共有ホスティング環境があり、いくつかの制限が適用されている場合は、リアルタイム機能を外部委託することをお勧めします。私はそのような会社の1つであるプッシャーで働いているので、これを言うでしょう。しかし、私は他の人がこれについて私を支持してくれることを願っています。

ホスト型ソリューションを使用する場合、RESTfulAPIにHTTPリクエストを送信することで通知をプッシュできます。その後、サービスは接続されたWebクライアント(ブラウザ)にメッセージを配信します。ブラウザには、スクリプトタグを含めるか、ホストされているサービスにも接続するライブラリを使用する必要があります。

主な利点は次のとおりです。

  • インストールやメンテナンスは不要
  • 持続的接続を処理する必要はありません-リソースの使用はありません
  • 本当に簡単な使用法:アプリのスクリプトタグとRESTAPIの呼び出し
  • ホストされたソリューションはスケーリングを処理します

また、ホストされているリアルタイムソリューションのリストは次のとおりです。

于 2011-10-07T09:55:23.160 に答える
0

これで Python が使えるようになります。その後、トルネードを使用できます。(psst... facebook で使用)

そして、開いている接続でも同じ問題がありました。PHP での検索ソリューションに時間をかけないでください。後で後悔することになります。私はそうでした。コメット用に作られたものを使用してください。JAVAの方が好きなら、CometDがあります

ゲームの場合は、通常のホスティングを取得します。彼らは今日安いです。

于 2011-10-07T08:27:14.033 に答える