gpt4 book ai didi

Flask 服务器使用 uwsgi 发送事件(SSE)

转载 作者:IT王子 更新时间:2023-10-29 06:07:30 30 4
gpt4 key购买 nike

基本示例来自:https://pypi.python.org/pypi/Flask-SSE

app.py:

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')

@app.route('/send')
def send_message():
sse.publish({"message": "Hello!"}, type='greeting')
return "Message sent!"

与:

var source = new EventSource("{{ url_for('sse.stream') }}");
source.addEventListener('greeting', function(event) {
var data = JSON.parse(event.data);
console.log(data);
}, false);
source.addEventListener('error', function(event) {
console.log("Failed to connect to event stream.");
}, false);

如果我使用gunicorn:

gunicorn app:app --worker-class gevent --bind 0.0.0.0:8000

在我的模板中成功接收到消息,但是如果我使用 uwsgi:

uwsgi --gevent 100 --socket 0.0.0.0:8000 --protocol=http -w wsgi

使用app.ini:

[uwsgi]
module = wsgi

master = true
processes = 5

socket = app.sock
chmod-socket = 660
vacuum = true

die-on-term = true

模板 JavaScript 没有收到任何消息,我也没有收到任何错误。

我在 Ubuntu 16.10 上使用 redis 服务器

最佳答案

我认为您需要创建另一个端点来流式传输您发布的内容:看看这个 repo https://github.com/jakubroztocil/chat

关于Flask 服务器使用 uwsgi 发送事件(SSE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43710383/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com