案例基于thinkPHP框架:
服务端方法:
public function ssefun() { ob_implicit_flush(); header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); $i=time(); echo 'retry:1000'.PHP_EOL;//每秒执行一次 echo "data: The server time is: {$i}\n\n"; }
前端js:
<script> if(typeof(EventSource)!=="undefined") { var source=new EventSource("{:U('home/index/ssefun')}"); source.onmessage=function(event) { document.getElementById("result").innerHTML+=event.data + "<br>"; }; } else { document.getElementById("result").innerHTML="抱歉,你的浏览器不支持 server-sent 事件..."; } </script>
html代码:
<div id="result"></div>