push / long poll chat

Status
Niet open voor verdere reacties.

ecross

Gebruiker
Lid geworden
4 mrt 2009
Berichten
638
hallo allemaal,

ik ben een beetje aan het experimenteren van long poll (een soort wannabe push) in php
en ik heb het volgende scriptje:

PHP:
<?php
$sleepTime = 1; //Seconds
$data = 0;
$timeout = 0;
$maxtimeout = 20;

//Query database for data
while(1){
	if($timeout > $maxtimeout){ // max connection seconds
		die("timeout");
	}
	
	$data = file_get_contents("poll.txt");
	if($data == 0){
		flush();
		sleep($sleepTime); 
		$timeout += $sleepTime;
	}else{
		 echo "a full yes";
		 break;
	}
}

?>
met dan een text bestandje "poll.txt" met daarin een 1 of 0 (dit alleen om te testen).

ik heb 2 vraagjes:
1. is het mogelijk om de while lus hier uit te halen?
2. hoe kan ik dit gebruiken voor een chat, het liefste zonder text bestand of database.

ik hoop dat het een beetje duidelijk is, Ecross
 
Dit is geen goed idee, vrees ik. Als je een chat wil maken, kun je het beste gaan lezen over het gebruik van sockets, of gebruik maken van een script dat met AJAX eens per seconde nieuwe teksten ophaalt, want dit gaat uit elkaar vallen als je meer dan een paar users hebt aangezien al die scripts wel parallel aan elkaar moeten blijven draaien de hele tijd.
 
Ik zie hier trouwens een oneindige while loop :o
Misschien toch wat meer controle op de loop zetten?
 
het scripje is niet oneindig, na 10 seconden doet hij deen die()

@fratz kan zo'n socket met alleen php? kun je een zo simpel mogelijk voorbeeldje geven?

ecross
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan