通过flask框架实现服务器推送
Flask框架本身不支持服务器推送(Server-Sent Events),但可以使用第三方扩展来实现。以下是使用flask-sse扩展实现服务器推送的示例代码:
安装flask-sse扩展:
pip install flask-sse
在Flask应用中注册SSE扩展:
from flask import Flask
from flask_sse import sse
app = Flask(__name__)
app.config["REDIS_URL"] = "redis://localhost"
app.register_blueprint(sse, url_prefix="/stream")
创建一个SSE路由:
from flask_sse import sse
@app.route("/push")
def push():
# 向所有连接的客户端推送消息
sse.publish({"message": "Hello, world!"}, type="greeting")
return "OK"
在客户端使用JavaScript连接并接收服务器推送:
let source = new EventSource("/stream");
source.addEventListener("greeting", function(event) {
console.log(event.data);
});
在浏览器中访问/push路由即可向所有连接的客户端推送一条消息。
原文地址: https://www.cveoy.top/t/topic/bcv9 著作权归作者所有。请勿转载和采集!