SSE(server-sent event)是基于HTML5的服务器推送消息事件,它允许服务端单向向浏览器客户端发送数据,SSE使用流信息向浏览器推送信息,浏览器自动接收服务端推送过来的消息,它是基于HTTP协议。
前端html代码<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" />
<title>BFW NEW PAGE</title>
<script type="text/javascript">
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("sse.php");
//监听test事件
source.addEventListener('test', function (event) {
console.log(event.data)
});
} else {
alert("您的浏览器不支持SSE");
}
</script>
<style>
</style>
</head>
<body>
</body>
</html>
服务端sse.php代码
<?php
header('X-Accel-Buffering: no');
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
set_time_limit(0); //防止超时
ob_end_clean(); //清空(擦除)缓冲区并关闭输出缓冲
ob_implicit_flush(1); //这个函数强制每当有输出的时候,即刻把输出发送到浏览器。这样就不需要每次输出(echo)后,都用flush()来发送到浏览器了
$j = 0;
while ($j < 5) {//推送5次
sleep(2);//休眠2秒钟
$j++;
$c = "event:test" . PHP_EOL; //定义事件
$c .= "data:helloword" . PHP_EOL; //推送内容
echo $c . PHP_EOL;
}
//没消息时也得有个输出 不能会报错
echo 1;
网友回复
如何将linux服务器的文件目录映射到windows电脑磁盘?
Docling 与 MarkItDown 两个库有啥不同?
豆包收费后国产其他ai软件也会跟进收费吗?
JPEG 与 HEIF图片格式区别?
centos7版本太旧无法安装python3.11,如何在docker中运行python3.11?
python如何做个RPA按键精灵的程序?
写一个windows的cmd的python代码如何在命令行中捕获获取复制粘贴的图片?
如何将别人爆款的抖音短视频短剧文案提取为seedance2的提示词?
阿里云域名dns云解析10万次日限额如何应对?
windows电脑如何提交上架ipa苹果应用?


