Hey,
Is het mogelijk on een ononderbroken connectie met een welbepaalde folder te maken in php.
Dus als ik iets in die folder steek de website zonder te refreshen toch detecteert dat er iets nieuws bij ingestoken is.

Alvast bedankt,
Philippe.
automatisch refreshen ?
Dat zou kunnen maar dat is niet echt wat ik wil dan zou hij elke seconde de pagina moeten refreshen.
Je kan met AJAX af en toe controleren of er nieuwe dingen in zitten. Een persistente connectie zoals jij die voor ogen hebt zit er niet echt in in PHP, wel mogelijk, maar niet wenselijk.
Waarom niet wenselijk ?
Om de servers niet te overbelasten of om andere redenen.
Met ajax zou ik eventueel kunnen doen als er geen ander alternatief mogelijk is.

[size=xsmall]Toevoeging op 14/04/2011 10:39:18:[/size]

Waarom niet wenselijk ?
Om de servers niet te overbelasten of om andere redenen.
Met ajax zou ik eventueel kunnen doen als er geen ander alternatief mogelijk is.
Elke x aantal minuten een ajax request?
Of als je echt altijd real time wilt gewoon een oneindige loop met daarin alleen maar een ajax request. De vraag is of je dat wilt. Zoals Gerben al zegt het is mogelijk maar niet wenselijk.
Ik zou het kunnen doen met een ajax refresh, maar deze zou dan moeten refreshen als er iets nieuws in de map zit en dus niet op tijd.
Dit omdat er meerdere bestanden naar de map zullen gestuurd worden op bepaalde random tijdstippen en elkaar zullen overschrijven.
Heb wel elk bestand apart nodig binnen php om weer te geven.
Long polling:
Bij laden pagina direct een verbinding aanvragen.
De server checkt elke x seconden of er iets nieuws is.
Zo ja, dan pas wordt het antwoord verstuurd.
De client interpreteert dit antwoord en stuurt direct een nieuwe vraag.

Client spreekt voor zich.
Server:
<?php
// Het moment waarop de wijzigingen al bekend zijn
$time = isset($_GET['time']) ? $_GET['time'] : 0;

while(true) {
$new = check($time);
if(!empty($new))
die(json_encode($new));
sleep(1);
}
?>
@Pim hou ook rekening met je webserver. Die sluit het proces ook na een * periode.
Dan maar zo:
<?php
// Het moment waarop de wijzigingen al bekend zijn
$time = isset($_GET['time']) ? $_GET['time'] : 0;

for($i = 0; $i < 20; $i++) {
$new = check($time);
if(!empty($new))
die(json_encode_string($new));
sleep(1);
}
echo json_encode_string(array());
?>
Bedankt voor de reacties,
Ga kijken wat ik ervan kan gebruiken.

Grts Philippe.

Reageren