PHP Event Source продолжает выполняться

Я начал использовать push в HTML5, используя объект JavaScript EventSource. Я был полностью доволен рабочим решением на PHP:

$time = 0;
while(true) {
    if(connection_status() != CONNECTION_NORMAL) {
        mysql_close()
        break;
    }
    $result = mysql_query("SELECT `id` FROM `table` WHERE UNIX_TIMESTAMP(`lastUpdate`) > '".$time."'");
    while($row = mysql_fetch_array($result)) {
        echo "data:".$row["id"].PHP_EOL;
        echo PHP_EOL;
        ob_flush();
        flush();
    }
    $time = time();
    sleep(1);
}

Но вдруг мой WebApp не былбольше не достижим с ошибкой MySQL "слишком много подключений".

Оказалось, что соединение MySQL неt закрыть после закрытия источника события в JavaScript:

window.onload = function() {
    sse = new EventSource("push.php");
    sse.onmessage = function(event) {
        console.log(event.data.split(":")[1]);
    }
}
window.onbeforeunload = function() {
    sse.close();
}

Поэтому я предполагаю, что скрипт PHP не останавливается для выполнения. Есть ли способ вызвать функцию (например,die();) до того, как соединение с клиентом разрывается? Почему нетмой сценарий завершается после вызова.close(); на EventSource ?!

Спасибо за помощь! -

Ответы на вопрос(6)

Ваш ответ на вопрос