2025-06-26 18:24:33 +08:00

44 lines
1.0 KiB
PHP

<?php
namespace app\api\controller\sse;
use think\Controller;
class Demo extends Controller
{
public function index()
{
// 设置SSE响应头
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
//添加 X-Accel-Buffering=no
header('X-Accel-Buffering: no');
// 禁用输出缓冲
if (ob_get_level() == 0) ob_start();
for ($i = 0; $i < 10; $i++) {
// 构建数据
$data = [
'time' => date('Y-m-d H:i:s'),
'message' => 'hallo word ' . ($i+1)
];
// 发送数据
echo "data: " . json_encode($data, JSON_UNESCAPED_UNICODE) . "\n\n";
// 刷新输出缓冲
flush();
ob_flush();
// 休眠1秒
sleep(1);
}
// 结束连接
echo "data: {\"complete\":true}\n\n";
ob_end_flush();
}
}