私はいくつかの webapp を構築しており、ロングポーリング (およびデータベースにコマンドキュー) を実装しているため、サーバーはコマンドをクライアントに非同期で送信できます。コマンドは json にエンコードされ、クライアントからサーバーへの ajax 呼び出しを介して送信されます。サーバーからクライアントへのロングポーリングを介して。
「認証モジュール」をajax.phpファイルに含めるまで、すべてがうまく機能していました。このモジュールは、セッションのものをラップし、session_start() を呼び出します。
問題は、私の長いポーリング ルーチンが、クライアントに戻る前に最大 21 秒待機できることです。この間、サーバーは同じセッションから何も実行しません。代わりに、長いポーリング ajax 呼び出しが返された直後に実行されます。
一度にセッションごとに 1 つのスレッドのみという制限があり、リクエストがキューに入れられることを理解しています。
ここで質問です。これに対処する最善の方法は何ですか? セッションごとに複数のスレッドを許可する設定はありますか (私の場合は 3 つでも問題ありません)。または、クライアントに彼のSessionIDが何であるかを送信する必要があります(どのユーザーがどのセッションに接続されているかを追跡するために、データベースにいくつかのセッションテーブルがあります)。クライアントは、認証モジュールをバイパスできるように、任意の ajax 呼び出しと共にそれを送信できます。
後者のオプションでは、最終的なセッションのなりすましのために、多くのセキュリティ問題が発生するのではないかと心配しています. 簡単になりすましができないように、各セッションに「ランダムな文字列」を送信する必要がありますが、それでも完璧ではありません...
あなたのオーサーをありがとう:)
ニコラ・ゴーティエ