当前位置:首页 > PHP

php实现sse

2026-03-13 00:56:27PHP

PHP 实现 SSE(Server-Sent Events)

SSE 是一种服务器向客户端推送实时数据的协议,基于 HTTP 长连接。以下是使用 PHP 实现 SSE 的方法:

设置响应头

确保服务器返回正确的响应头,标识内容类型为 text/event-stream,并关闭缓存:

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');

发送事件数据

SSE 数据格式遵循 field: value 规范。常用字段包括 event(事件类型)、data(内容)和 id(事件 ID):

php实现sse

echo "event: message\n";
echo "data: {\"time\": \"" . date('H:i:s') . "\"}\n\n";
flush();

保持连接循环

使用循环持续发送数据,并通过 ob_flush()flush() 强制输出缓冲区内容:

while (true) {
    $currentTime = date('H:i:s');
    echo "data: $currentTime\n\n";
    ob_flush();
    flush();
    sleep(1);
}

客户端代码示例

HTML 前端通过 EventSource API 接收 SSE 数据:

php实现sse

const eventSource = new EventSource('sse.php');
eventSource.onmessage = (e) => {
    console.log(e.data);
};

断开连接处理

在 PHP 中检测客户端是否断开连接,避免资源浪费:

if (connection_aborted()) {
    break;
}

完整示例代码

服务器端 sse.php

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');

while (true) {
    $data = json_encode(['time' => date('H:i:s')]);
    echo "data: $data\n\n";
    ob_flush();
    flush();

    if (connection_aborted()) break;
    sleep(1);
}
?>

注意事项

  • 避免在 SSE 连接中执行长时间阻塞操作,确保数据及时推送。
  • 生产环境建议增加错误处理逻辑,例如数据库连接失败时的重试机制。
  • 对于高并发场景,需考虑服务器性能优化(如使用 Redis 发布订阅模式)。

标签: phpsse
分享给朋友:

相关文章

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现mysql

php实现mysql

PHP 连接 MySQL 的基本方法 PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。 使用 MySQLi 扩展 MySQLi 是 MySQL 的改进扩展,支持面向对…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart/…

php实现mvc

php实现mvc

PHP 实现 MVC 架构 MVC(Model-View-Controller)是一种常用的软件设计模式,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller…

php实现过程

php实现过程

PHP 实现过程 PHP 是一种广泛使用的服务器端脚本语言,特别适合 Web 开发。以下是 PHP 实现过程的关键步骤和注意事项。 安装与配置 下载并安装 PHP,可以从官方 PHP 网站获取最新版…