0

So I'm trying to long poll for new database rows using an infinite loop which breaks and sends the data to server. But the infinite loop is slowing the xampp server and making the website take 20-30 seconds to respond. Is it just happening in xampp or would it happen in a real live server too?

Also, is there a better way to implement long polling? Here is my server script.

set_time_limit(0);

$result =mysqli_query($connect, "SELECT * FROM userss WHERE email='$mail'");
$d=mysqli_fetch_assoc($result);
$lnote=$d['last_note'];
$data=array();
while(true){
$result =mysqli_query($connect, "SELECT * FROM notifications WHERE recipient='$mail' AND note_id > '$lnote'");
while ($rows=mysqli_fetch_assoc($result))
{
 $data[] = $rows;
 $nid=$rows['note_id'];
 }
 if($data!=null){
  echo json_encode($data);
  $update="UPDATE userss SET last_note='$nid' WHERE email='$mail'";
  mysqli_query($connect,$update);
  break;
 }
 sleep(10);
}

?>
  • 1
    look into using ajax or sockets, instead of an infinite loop. – coderodour Nov 13 '18 at 14:12
  • I am using ajax to send the request and as you can see, the request stays until the data is found. Although, I have found that even an empty infinite loop is enough to make the website slow as hell. How else do they long poll if not with an infinite loop? – Ali Kabeer Nov 13 '18 at 14:19
  • This will help you out. https://stackoverflow.com/questions/333664/how-do-i-implement-basic-long-polling – Sayed Mohd Ali Nov 13 '18 at 14:22
  • Even in the examples people are giving, some sort of infinite loop is used with or without a timestamp. But it's just not working for me. – Ali Kabeer Nov 13 '18 at 16:03

0 Answers0