案例基于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>


官方公众号