Необходимо сделать уведомление о количестве новых сообщения для пользователей, используя Long polling.
Что есть на данный момент:
клиент 1
$(document).ready(function getmess(){
$.ajax({
url:"notif.php",
data:{"id":id},
type:"POST",
timeout: 10000,
complete:getmess,
success:function(result){
$("#count").html(result);
}
});
});
сервер:
$mysqli = new mysqli('localhost', 'root', '', 'lc');
if (mysqli_connect_errno()) {
printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n", mysqli_connect_error());
exit;
}
session_start();
$MY_ID = $_SESSION['id'];
$newData = false;
while (true) {
$result = $mysqli->query("SELECT COUNT(*) FROM messages WHERE user_get='$MY_ID' AND status='1' ");
if (mysqli_num_rows($result)) {
while ($row = mysqli_fetch_array($result)) {
echo $row[0]."";
}
flush();
exit;
}
sleep(5);
}
Реализацию данного метода подсмотрел по этой ссылке
toster.ru/q/52092
Суть в чем - мне надо отсылать запрос на сервер и ждать ответ 10 секунд, если ответа нет, то отсылать опять запрос и ждать 10 секунд ответа.
Но у меня никак не получается это сделать, - запросы отсылаются каждую секунду длиной тоже 1 секунду, при этом нарушается сам принцип Long polling. На изменения значения timeout не реагирует вообще.