私は最近、CodeIgniter フレームワークを使用して PHP アプリケーションを継承しました。このフレームワークは、認証、ユーザー セッション、CRUD 操作、ルーティング、テンプレート作成、およびアプリケーションのほぼすべての側面を美しく処理します。ただし、1 つの機能では、ロング ポーリングを使用する必要があります。特定の管理者は、他のユーザーが行っていることをほぼリアルタイムで更新する必要があります。現在、数百人のユーザーの場合はすべて正常に機能していますが、数千人のユーザーをサポートするようにスケールアップしています。長いポーリングによってパフォーマンスの問題が発生するのではないかと心配しています。
ロング ポール プロセスの基本は次のとおりです。
ブラウザーは、ロング ポーリング プロセスを開始する GET 要求を行います。
ロング ポーリング プロセスは、1/4 秒ごとに txt ファイルのタイムスタンプをチェックします。
a) txt ファイルが更新されると、ロング ポーリング プロセスが変更をブラウザーに返し、ビューが更新されます。
b) 25 秒以内に変更が見つからない場合、ロング ポールは終了し、null を返します。
手順 1 を繰り返します。
このプロセスは、codeigniter フレームワークの外で行われます。このプロセスを socket.io の実装に置き換えるのは良い考えだと思います。
socket.io は、ロングポーリングよりも優れたソリューションになりますか? もしそうなら、実際にデモを構築して負荷テストを行わずに、どのような説得力のある証拠がありますか? 頭の中では良いアイデアのように思えますが、切り替えるには時間と労力を正当化する必要があります。
また、これが意味をなさない場合、または SO 基準による「本当の質問ではない」場合は申し訳ありません。私はバックエンドのスケーラビリティにかなり慣れていないため、これらのほとんどはまったく新しいものです。反対票を投じる前に、(必要に応じて)言葉を変えるための役立つガイダンスを提供してください。ありがとう。
編集: ここでの優先事項は、特に新しいものがテストされていない場合に、コードを切り取って新しいものに置き換えるのは費用がかかるため、現状のままにしておくことです。だから私の質問は、ロングポーリングソリューションがレンガの壁にぶつかった場合/場合、socket.ioは実行可能な代替品になるのでしょうか?