After lot of trials,I am successfully able to maintain continous server connection with database. Now code keet cheking and show the messages,if there are new in database.
Plz review and tell if there is true long polling technique used in this code? If it is not,then plz suggest,where I am wrong(deviating from long polling) and how this can be made a true long polling.
Currenlty,I am getting these errors.However still it maintains the continous connection with database.
- each time,Only one message is pulled instead of all.(I used .each loop but it stops the long polling)
-
After every 10/15 seconds,token error apperes(Parse erroe(syntax error=unexpected token)).
var last_msg_id = 2; function load_msgs() { $.ajax({ type:"Post", url:"getdata.php", data:{ last_msg_id:last_msg_id }, dataType:"json", async:true, cache:false, success:function(data) { var json = data; $("#commidwin").append(json['msg']); last_msg_id = json["last_msg_id_db"]; setTimeout("load_msgs()", 1000); }, error:function(XMLhttprequest, textstatus, errorthrown) { alert("error:" + textstatus + "(" + errorthrown + ")"); setTimeout("load_msgs()", 15000); } }); }
Php file is here
$last_msg_id=$_POST['last_msg_id'];
$last_msg_id_db=1;
while($last_msg_id>$last_msg_id_db){
usleep(10000);
clearstatcache();
$sql=mysqli_query($db3->connection,"SELECT * FROM chat_com where id>'$last_msg_id' ORDER by id ASC");
$sql_m=mysqli_query($db3->connection,"SELECT max(id) as maxid FROM chat_com");
$row_m=mysqli_fetch_array($sql_m);
$last_msg_id_db=$row_m['maxid'];
while($row=mysqli_fetch_array($sql)){
$textt=$row['mesg'];
$last_msg_id_db=$last_msg_id_db;
$response=array();
$response['msg']=$textt;
$response['last_msg_id_db']=$last_msg_id_db;
}
}
echo json_encode($response);