背景:不分接口需要返回流式数据,循环一次输出一次数据
php接口给前端返回流式数据,循环一次输出一次
返回结果效果视频
php接口给前端返回流式数据,循环一次输出一次
完整返回结果数据格式
控制台网络内查看到的数据格式
完整代码
/** * 该函数用于通过HTTP流式传输发送实时数据。 * 它使用Server-Sent Events(SSE)协议向客户端持续推送数据。 * 数据是即时发送的,不会被服务器缓存。 */ public function streamData2() { // 清除当前的输出缓冲区并禁止输出缓冲,以确保数据能够即时发送给客户端 ob_end_clean(); // 设置响应头,指定使用SSE协议,禁用缓存并保持连接 alive header('Content-Type: text/event-stream'); header('Cache-Control: no-cache'); header('Connection: keep-alive'); // 对于使用Nginx服务器的情况,禁用缓冲以确保数据即时发送 header('X-Accel-Buffering: no'); // 循环模拟持续发送数据的过程 for ($i = 0; $i < 10; $i++) { // 按照SSE格式构建并发送数据,每个数据项之间添加两个换行符以结束数据块 echo "data: " . $i . "\n\n"; // 刷新输出缓冲区并强制数据立即发送到客户端 ob_flush(); flush(); // 暂停一秒以模拟数据生成或处理的过程 sleep(1); } }