私はphp対nodejsを勉強していました。 apache mpm preforkモジュールを考慮している場合、phpは新しいスレッドを生成して各リクエストを処理します。反対側には、Rachet、Elephant.io、phpsocket.io、phpDeamonなどのlibsがあり、これを使ってサーバーのようなnode.jsを作成し、それを使って簡単にチャットアプリを構築することができます。mpm preforkモジュールを使用して、PHPの単一スレッドでクライアント接続を同時に処理できますか?
しかし、どのようにこれらのライブラリは、実際に働いているよりも(作業員やイベントの場合)(preforkのの場合)、異なるプロセスまたは異なるスレッド上の各要求の土地であれば?彼らはコミュニケーションのb/wプロセスやスレッドにIPCを使用していますか?あるいは、実際に何が起こっているのですか?実際の後ろに起こっている
は狂気私を運転しています。これについていくつかの説明が必要です。
クライアント1がサーバーに接続し、サーバーがイベントループに入ります。クライアント2は接続するので、同じスレッドに接続するか、Apacheは新しいプロセス/スレッドを生成します(Apacheのprefork mpmモジュールの使用を検討しています)? –
いいえ、いいえ、いいえ。 Apacheのリクエストハンドラでマルチクライアントコードを実行しないでください。 Apache以外でPHPで書かれたサーバーを実行するか、Apache内部で一度に1つのクライアントを処理します。 RTFMを使用すると、サーバーの関連機能のほとんどがCLI SAPI以外では使用できないことがわかります。 – symcbean