504 bei Long Polling
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
antwort
bitten
browser
code
einstellung
eintrag
festgelegt http
geduld
info
inhalt
machen
problem
sekunde
server
stunden
testprogramm
verbindung
verhindern
vollen minute
-
Einfacher, kurzer PHP-Code:
Letztendlich möchte ich auf Long Polling hinaus.<?php sleep(120); echo "Inhalt."; ?>
Das heißt, der Browser sendet eine Anfrage und der Server wartet mit der Antwort, bis er eine hat.
Das Problem ist jetzt, dass ich nach etwa 50 sec. den Error bekomme:
504 Gateway Time-out
The server didn't respond in time.
Irgendein Proxy denkt also, es käme nie mehr eine Antwort und macht die Verbindung zu.
Kann man z.B. Serverseitig um "Geduld" bitten, oder gibt es eine andere Möglichkeiten, diesen Fehler zu verhindern? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Nein, gibt es nicht, denn diese Einstellung ist serverseitig festgelegt:
http://system.lima-city.de/info.php
Timeouts Connection: 60 - Keep-Alive: 1
-
Mit Long-Polling wirst du dich bei einem Shared-Hoster vermutlich nicht sonderlich beliebt machen…
Du könntest, um das Timeout zu verhindern, nach z.B. 50 Sekunden die Verbindung serverseitig schließen und den Client veranlassen eine neue zu öffnen; dadurch kannst du quasi unendlich lange pollen.
Außerdem wirst du bei Ausführungszeiten > 20 Sekunden ein Problem bekommen, da die max_execution_time auf 20 Sekunden festgelegt wurde und nicht verändert werden kann. -
20 Sekunden?
Ich hab ein Testprogramm geschrieben, das auf 2 Stunden festgesetzt ist.
Es läuft gerade auf dem Server und schreibt nach jeder vollen Minute einen Eintrag in die Datenbank.
6 Einträge stehen schon drin = 6 Min.
Oder meinst du 20 Min.? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage