php sse逐字输出简单代码

    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变量中
                });
            },

你可能感兴趣的:(状态模式)