うまくいけば、私はこれを十分に説明することができます。私はPHP library to handle ajax requests through PHPをオブジェクト指向の方法で作成しています。私は現在、長いポーリングソリューションを実装するための良い方法を考えていますが、何かについて興味があります。ApacheでのPHPによるロングポーリング
Apacheは、複数の接続を非常にうまく開いた状態に保つことはできません。要求ごとのスレッドモデルは、Apacheを長いポーリングでは非常に非効率的にします。 nginxやlighttpdのようなサーバを使うと、これらのスレッドをもっとうまく処理できるので、ライブラリでは、単一の関数呼び出しから利用可能な特定のサーバに最適化されたさまざまな関数を実装する予定です。 Apacheの場合、PHPアプリケーションの市場シェアが非常に大きくなっていますが、私はより良い解決策が必要です。
受信リクエストを保留/一時停止し、他のリクエストの処理を続けるまで処理を続ける方法はありますか?
私はそれが意味をなさないか、私が正しいトラックにいてもわかりません。 SOがApacheサーバー上でPHPで長いポーリングを行うことをお勧めする可能性のある解決策は何ですか?
なぜサーバー上で処理を一時停止しますか?あなたのユーザーがたくさん待たされるのではないでしょうか? – Joseph
Apacheでは、要求ごとのスレッドモデルを使用するため、アプリケーションの最初のページ要求でスレッドが使用され、ajax要求(DOMがロードされると呼び出されます)では別のスレッドが使用されます。問題は、大量のトラフィックが何千ものスレッドを生成し、最終的にはサーバーを無効にすることを試みることです。 –
私はajax/PHPの長いポーリングページを読み込んだ後も同じような問題がありました。いずれにしても、タイムアウト機能をjavascriptに移したので、javascriptは新しいPHP実行をそれぞれ要求しています10sだが、ページの読み込みは今やOKであるようだ。 –