public function test_abc(){
header("Content-Type: text/event-stream");
header('X-Accel-Buffering: no');
// 向前端发送初始化消息
$this->sendEvent('message', '...');// 模拟一些处理任务
for ($i = 0; $i < 10; $i++) {
// 执行某些操作... // 每次完成处理后向前端发送进度消息
$this->sendEvent('message', "Task $i completed."); // 刷新输出缓冲区,确保数据被及时发送到前端
ob_flush();
flush(); // 延时1秒
sleep(1);
}
ob_end_flush(); // 处理完成后,向前端发送结束消息
$this->sendEvent('message', 'DONE');
}
function sendEvent($event, $data) {
echo "event: $event\n";
echo "data: $data\n\n";
}
//前端代码
startChat() {
var that = this;
// http://dev.jewelryhunt.net/index/test/test_abc
const es = new EventSource("http://dev.jewelryhunt.net/index/test/test_abc")
es.addEventListener("message", (event) => {
that.displayedMessage = event.data; // 将新消息保存在messages变量中
});
},

发表评论 取消回复