php sse 长连接,SSE长连接 EventSource的实时输出

本SSE长连接实例,支持后台持续输出,直到脚本执行时间超时!

基础SSE的详解可参考:http://www.cnblogs.com/goody9807/p/4257192.html#commentform

listen.php  代码

Class Listen{

public function common(){

/**

* @param $returnData [string] 返回的数据,对应data

* @param $event [string] 事件类型,对应字段Type

* @param $id [id] 对应字段ID

* @param $retry [id] 服务器端三秒内没有发送任何信息,则开始重连最大间隔时间:毫秒

* @descrbe 可以参照第一张截图

*/

function return_event_data($returnData,$event='msg',$id=0,$retry=0){

$ResponseType = ['message','event'];

$str = '';

if($id>0){

$str.= "id:{$id}".PHP_EOL;

}

if($event){

$str.= "event:{$event}".PHP_EOL;

}

if($retry>0){

$str.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSE (Server-Sent Events) 是一种用于实现服务器向客户端推送实时数据的技术,它基于HTTP协议,使用长连接来保持客户端和服务器之间的通信,并且服务器可以随时向客户端推送数据。 EventSource 是一个 JavaScript API,用于接收 SSE 服务器端推送的数据,并将其呈现给用户。使用 EventSource API,可以在客户端创建一个 SSE 连接,并监听服务器端推送的事件。当服务器端有新数据时,EventSource 会自动接收并触发相应的事件,从而实现实时输出。 以下是 SSEEventSource 的使用示例: 1. 服务器端: ```python from flask import Flask, Response app = Flask(__name__) @app.route('/stream') def stream(): def event_stream(): for i in range(10): yield 'data: %s\n\n' % i return Response(event_stream(), mimetype="text/event-stream") ``` 2. 客户端: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>SSE Demo</title> </head> <body> <ul id="msg-list"> </ul> <script> var source = new EventSource("/stream"); source.onmessage = function(event) { var node = document.createElement("LI"); var textnode = document.createTextNode(event.data); node.appendChild(textnode); document.getElementById("msg-list").appendChild(node); }; </script> </body> </html> ``` 在上述示例中,服务器端使用 Flask 框架创建一个 SSE 连接,每隔一秒钟推送一个数据,客户端使用 EventSource API 创建一个 SSE 连接,并监听服务器端推送的数据,将数据添加到页面上的列表中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值