0
我正在試驗websockets,並希望檢測用戶是否已從頁面導航到PHP流腳本從運行。其他一切工作正常。檢測用戶中止/導航websocket
我試圖做的所有事情都不會停止運行PHP腳本(在本地使用Xampp)。
我目前使用JavaScript的beforeunload
工作,和PHP的connection_aborted()
,connection_status()
甚至file_exists()
(這是目前的工作只有一個!)。 直到腳本存在或我重新啓動Apache我不能重新加載頁面,但它是中止檢測,我必須工作。 Firebug報告套接字腳本已中止,但PHP只是保持離子運行。任何幫助讚賞。
我的JavaScript看起來像這樣
function socket_open(){
if(!!window.EventSource){
var websocket = new EventSource('./ajax/progress.php');
websocket.addEventListener('message', function(e){
var data = JSON.parse(e.data);
console.log(data);
},false);
$(window).bind('beforeunload', function(){
websocket.onclose = function(){};
websocket.close();
});
}
}
我的PHP是這樣的。 ./ajax/progress.php
function get_task_progress(){
$output = array();
//conditionally create some output
if(!empty($output)){
echo 'data: '.json_encode($output)."\n\n";
ob_flush();
flush();
}
sleep(1);
if(!connection_aborted() && connection_status()==0 && file_exists('1.txt')){
get_task_progress();
}
}