【附带效果视频】php接口给前端返回流式数据,php使用event-stream进行数据推送,循环一次输出一次

G佳伟 2024-08-20 14:33:04 阅读 83

背景:不分接口需要返回流式数据,循环一次输出一次数据

php接口给前端返回流式数据,循环一次输出一次

返回结果效果视频完整返回结果数据格式控制台网络内查看到的数据格式完整代码

返回结果效果视频

php接口给前端返回流式数据,循环一次输出一次

完整返回结果数据格式

在这里插入图片描述

控制台网络内查看到的数据格式

在这里插入图片描述

完整代码

<code> /**

* 该函数用于通过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);

}

}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。