PHP usleep()导致我所有的PHP保持不变

时间:2017-03-05 03:23:05

标签: php jquery ajax

我正在建立一个彗星longpolling消息系统 使用jQuery和PHP。 jQuery是我用于ajax的。

问题是,在ajaxed的php文件中,在返回之前等待while循环中的数据,导致我的所有其他ajax请求被挂起,直到它返回。在循环中我调用usleep()。
似乎usleep冻结了我所有的其他PHP,即使它们是单独的文件。有点奇怪。我该如何解决这个问题?继承人彗星php longpolling文件:

<?php

session_start();

if (empty($_SESSION['userID'])) {
    echo json_encode(array("status" => "not-loggedIn"));
    die();
}

if (empty($_GET['friendID'])) {
    echo json_encode(array("status" => "friendID-invalid"));
    die();
}

include("../../tools.php");

$html = getNewLiveChatMessages($_GET['friendID'], $_GET['messageID']);

if (!$html) {
    $timeout = 2;
    while ($timeout > 0) {
        $html = getNewLiveChatMessages($_GET['friendID'], $_GET['messageID']);

        if ($html) {
            break;
        }

        $timeout--;
        /* Wait 10 seconds */
        usleep(10000000); /* In microseconds */
    }
}

echo json_encode(array("status" => "success", "html" => $html));

?>

0 个答案:

没有答案