前端sse接收后端数据
时间: 2023-08-13 22:02:20 浏览: 209
在前端中,你可以使用 `EventSource` 对象来接收服务器端的数据,该对象提供了一种轻量级的、基于 HTTP 的服务器推送机制。下面是一个简单的示例代码:
```javascript
const source = new EventSource('/stream'); // 创建 EventSource 对象
source.addEventListener('message', (event) => {
console.log(event.data); // 处理接收到的数据
}, false);
source.addEventListener('error', (event) => {
if (event.readyState === EventSource.CLOSED) {
console.log('连接已关闭');
} else {
console.log('连接发生错误');
}
}, false);
```
在服务器端,你需要发送 SSE 格式的数据,例如:
```python
from flask import Flask, Response
app = Flask(__name__)
@app.route('/stream')
def stream():
def event_stream():
while True:
yield 'data: {}\n\n'.format('Hello, world!') # 发送 SSE 格式的数据
return Response(event_stream(), mimetype='text/event-stream')
```
在这个示例中,我们使用 Flask 框架来创建一个 `/stream` 路由,当有客户端连接时,它会发送 SSE 格式的数据。
需要注意的是,SSE 是一种基于 HTTP 的单向通信协议,只能由服务器向客户端发送数据,客户端无法向服务器发送数据。如果你需要双向通信,可以考虑使用 WebSocket。
阅读全文