文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Sever-Sent Events(SSE) 服务器向 Web 客户端推送实战示例

2023-10-01 21:28

关注

概念

Sever-Sent Events(SSE) 可实现由服务端主动推送消息给客户端

特点:

事件流格式

事件流仅仅是一个简单的文本数据流,文本应使用 UTF-8 格式编码。
每条消息后面都由一个空行作为分隔符。

event: myevent
data: xxxx
data: yyyy

data: zzzz

: this is just a annotation

实战 Demo

Server-Sents Events

DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>SSE Demotitle>head><body>    <div id="messages">div>    <script>        const source = new EventSource('sse.php');        // 建立连接        source.onopen = function () {            var messages = document.getElementById('messages');            messages.innerHTML += 'connection is established' + '
'
; }; // ping 事件类型消息 source.addEventListener("ping", function(event) { var messages = document.getElementById('messages'); messages.innerHTML += 'ping: ' + event.data + '
'
; }); // message 事件类型消息 source.onmessage = function(event) { var messages = document.getElementById('messages'); messages.innerHTML += event.data + '
'
; }; // 连接错误 source.onerror = function (event) { var messages = document.getElementById('messages'); var data = 'connection state: ' + eventSource.readyState + ', error: ' + event messages.innerHTML += data + '
'
; };
script>body>html>
// 禁用缓存header("Cache-Control: no-cache");// 指明 MIMIheader("Content-Type: text/event-stream");// 使用持久连接header('Connection: keep-alive');while (true) {  // 发送 ping 事件类型消息  echo "event: ping\n";  echo 'data: {"time": "' . date('Y-m-d H:i:s'). '"}';  echo "\n\n";  if (time() % 5 === 0) {    // 未指定事件类型,默认为 message 事件类型    echo 'data: This is a message at time ' . date('Y-m-d H:i:s') . "\n\n";  }  ob_end_flush();  flush();  sleep(1);}

参考

来源地址:https://blog.csdn.net/xchenhao/article/details/129555747

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯