Es können nicht mehrere Threads pro Sitzung erstellt werden

Ich baue eine Webanwendung und habe ein langes Polling (und eine Befehlswarteschlange in meiner Datenbank) implementiert, damit mein Server asynchron Befehle an meinen Cleint senden kann usw. Die Befehle werden in JSON codiert und über Ajax-Aufrufe an den Server gesendet und per Long-Polling für den Server zum Client.

Alles hat einwandfrei funktioniert, bis ich mein "Authentifizierungsmodul" in die ajax.php-Datei aufgenommen habe. Dieses Modul umschließt die Sitzung und ruft session_start () auf.

Das Problem ist, dass meine lange Abfrageroutine bis zu 21 Sekunden warten kann, bevor sie zum Client zurückkehrt. Während dieser Zeit wird auf dem Server nichts in derselben Sitzung ausgeführt. Es wird stattdessen direkt nach dem langen Aufruf von Polling Ajax ausgeführt.

Ich verstehe, es gibt wahrscheinlich eine Beschränkung von nur 1 Thread pro Sitzung und dass die Anforderungen in der Warteschlange stehen.

Hier ist die Frage: Wie kann man das am besten angehen? Gibt es eine Einstellung, um mehrere Threads pro Sitzung zuzulassen (3 wäre in meinem Fall in Ordnung). Oder sollte ich dem Client einfach mitteilen, wie hoch seine SessionID ist (ich habe einige Sitzungstabellen in meiner Datenbank, um zu verfolgen, welcher Benutzer mit welcher Sitzung verbunden ist). Der Client kann es dann zusammen mit Ajax-Aufrufen senden, sodass das Authentifizierungsmodul umgangen werden kann.

Ich befürchte, dass die spätere Option eine Reihe von Sicherheitsproblemen aufwirft, die möglicherweise auf Sitzungsspoofing zurückzuführen sind. Ich müsste zu jeder Sitzung eine "zufällige Zeichenfolge" senden, um sicherzustellen, dass Sie nicht zu leicht fälschen können, aber selbst dann ist es nicht perfekt ...

Danke für deine Ankündigungen :)

Nicolas Gauthier

Antworten auf die Frage(1)

Ihre Antwort auf die Frage