如何解决长轮询?

时间:2018-08-17 10:27:02

标签: javascript php ajax long-polling

我开始处理冗长的请求,但是我的代码不起作用。在俄语论坛上,没有人做出决定,这也许是幸运的。先感谢您。问题的实质:ajax发出请求,一切都很好,它可以正常工作。但是处理程序(用php编写)工作不佳(不起作用)。发送第一个查询$ old_msg_id = null,但没有任何变化

function getContent(timestamp)
{
    var queryString = {'timestamp' : timestamp, 'getmess' : "<? echo $_GET["set"]; ?>"};
    $.ajax({

            type: 'GET',
            url: 'pages/blocks/message/msd.php',
            data: queryString,
            success: function(data){

                var obj = JSON.parse(data);
                $('.logick').html(obj.data_from_file);
                                alert(obj.timestamp);
                getContent(obj.timestamp);
            }
        }
    );
}
$(function() {
    getContent();
});

$old_msg_id = $_GET['timestamp'];//первая отправка = null, вторая должна быть числом
$result = R::findLast('messages', 'dialog = ? ',array($_GET['getmess']));
$last_msg_id = $result->date;// передаем время последнего сообщения в базе

while($old_msg_id != null && $last_msg_id <= $old_msg_id)//если  переменная не пустая и она больше или = последней дате сообщения запукаем цикл, пока не найдет  обновление 
{
    usleep(1000);// стоп 
    clearstatcache();
    $result = R::findLast('messages', 'dialog = ? ',array($_GET['getmess']));
    $last_msg_id = $result->date; // обновляем переменную
}
//формируем массив сообщений + дату
$tr = array(
    'data_from_file' => 'new',
    'timestamp' => $last_msg_id
);
//формируем массив сообщений + дату**

echo json_encode($tr);//выводим json

0 个答案:

没有答案