EventSource实时数据更新

451 阅读1分钟
<?php
header('X-Accel-Buffering: no');
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
ob_end_clean();
ob_implicit_flush(1);
$i=1;
while(true){
$data['memory']=round(memory_get_usage()/1024/1024, 2).'MB';
$data['date']=date('Y-m-d H:i:s');
$data['cpu']=sys_getloadavg()[1];

$data=json_encode($data);
echo "id:$i\n\n";	
echo "data:$data\n\n";	
$data=[];
$i++;
ob_flush();
flush();
sleep(1);
}
?>
<script>
window.onload=function(){
var source = new EventSource("demo.php");	//生成EventSource对象,url必须同源
    source.onopen = function(){		//如果连接断开,还会自动重新连接
    console.log("连接成功")
 }
source.onmessage = function(event){	//event.data返回最新的消息
var data = JSON.parse(event.data);	     
console.log(data)
  }
}
</script>