Salve,
ho scritto il codice sottostante, l'obiettivo è quello di creare una chat in ajax senza però dover effettuare chiamate ogni 200/400/500 millisecondi.
Quello che vorrei è:
- Entro nella pagina e tramite una chiamata ajax faccio una richiesta a questa pagina php (il codice è sotto)
- Ogni qualvolta ci sono nuovi messaggi li manda al client
IL PROBLEMA:
Mi metto in ascolto, ricevo il primo messaggio, quando lo script deve inviare il secondo messaggio, oltre ad inviarmi il secondo mi reinvia ancora il primo, perchè?
Grazie!
codice:
<?php
ob_start();
define( 'MESSAGES_CHECK_INTERVAL', 250000 );
//Connect to database
$conn = mysql_connect("localhost","root","root");
$select = mysql_select_db("polling",$conn) or die (mysql_error());
$last_time=$_GET['last_time'];
while (true){
$last = check();
foreach ( $last as $msg ){
$last_time=$msg["time"];
echo ($msg["text"]);
}
usleep( MESSAGES_CHECK_INTERVAL );
}
function check(){
global $last_time,$conn;
//Retrieve data
$array=array();
$retval = mysql_query( "SELECT * FROM chat WHERE time>".$last_time, $conn );
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
array_push($array,$row);
return $array;
}
function wr($text){
echo $text;
flush();
ob_flush();
}
?>