PHP Event Source continua executando

Comecei a usar o push no HTML5 usando o objeto EventSource do JavaScript. Eu estava totalmente feliz com uma solução de trabalho em 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);
}

Mas de repente meu WebApp não estava mais acessível com um erro do MySQL "conexões demais".

Descobriu-se que a conexão do MySQL não fecha após fechar a fonte de eventos em JavaScript:

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

Então eu acho que o script PHP não para de executar. Existe alguma maneira de chamar em função (comodie();) antes da conexão dos clientes se desconectar? Por que meu script não termina depois de chamar.close(); no EventSource ?!

Obrigado pela ajuda! -

questionAnswers(6)

yourAnswerToTheQuestion