現在、クライアントとサーバー間の通信にWebソケットを使用するPHPアプリケーションを開発中です。私は、スレッド・メカニズム、メモリ管理(循環参照)、または不安定なソケット・ライブラリーの欠如のために、PHPをサーバー・アプリケーションに使用しないでください。PHPを使用したWebsocketサーバー
これまでのところ、すべてがうまくいっています。私はwebsocketライブラリとしてphpwsを使用していますし、異なるデータベースシステムにアクセスするにはDoctrine DBALを使用しています。 PHPはバージョン5.3.8です。サーバーは最大30のクライアントを提供する必要があります。しかし、特に最後の日には、長時間実行されるアプリケーションでPHPの効果がないとの記事がいくつか読んでいます。
私はPHPでウェブソケットを使用し続けるか、サーバサイドアプリケーション全体を再構築する必要があるかどうかは分かりません。私はSocket.IOでPythonを試しましたが、私が期待した結果は得られませんでした。
私は、次のオプションを持っていると思います:
- そのまますべてを保管してください。
- アプリケーションでAjaxをSocket.IOと組み合わせて使用するようにします。データがサーバーに送信されるときにクライアントのajax呼び出しを呼び出すserversideスクリプトを実行します。
最後の点は非常に興味深いと思いますが、何らかの作業が必要です。サーバーが一度にすべてのクライアント要求を実行するのは問題でしょうか?
お勧めですか? PHPのメモリ管理に問題がありますか(クライアントがサーバーにデータを送信するたびにgc_collectを使用しています)が有効ですか? PHPをサーバとして使用しないという明白な理由(スレッディングはありません...)の他に、他にも理由がありますか?
現在の作業中のデザインをスクラップする必要があるかどうか尋ねていますか?このような質問はここでは本当に有効ではありません。自分でコードを書くべきものを決める必要があります。他にどのようなサーバーサイドの言語がありますか?あなたのコードを書き換えようとすれば、Pythonコードを投稿して誰かが問題を見つけるのを助けることができます。 – xthexder