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变量中
});
},
发表评论 取消回复