swoole与浏览器进行eventSource推送示例代码
代码语言:phpcli
所属分类:通讯
代码描述:swoole与浏览器进行eventSource推送示例代码,swoole使用定时器服务端主动推送消息,当浏览器eventSource关闭后,服务器端检测到后关闭定时器,这也是模拟chatgpt stream模式。
代码标签: swoole 浏览器 eventSource 推送 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<?php use Swoole\Http\Request; use Swoole\Http\Response; // 设置响应头 function setHeader(Response $response) { $response->header('Content-Type', 'text/event-stream'); $response->header('Cache-Control', 'no-cache'); $response->header('Connection', 'keep-alive'); } // 发送事件 function sendEvent(Response $response, $event, $data) { $response->write("event:$event\n"); $response->write("data:$data\n\n"); } // 用于存储定时器ID的数组 $timerIds = []; // 创建HTTP服务器 $server = new Swoole\Http\Server('0.0.0.0', 9502); // 处理请求 $server->on('request', function(Request $request, Response $response) use(&$timerIds) { // echo $request->server['request_uri']."\n"; if ($request->server['request_uri'] == '/html') { // 返回一个文件上传表单 $response->end(' <script type="text/javascript"> const data = new EventSource("/test"); data.onmessage = function(event) { document.body.innerHTML += event.data + \'<br>\'; }; setTimeout(function(){ data.close(); },5.........完整代码请登录后点击上方下载按钮下载查看
网友评论0