Flask:无法连接到虚拟服务器上的 REDIS

时间:2021-02-10 01:24:08

标签: javascript html flask redis server-sent-events

目前我正试图让我的网站更智能一点。我安装在我的虚拟服务器上(托管在谷歌云上,ubuntu 20.10):

  • 运行我的烧瓶应用程序的一切
  • nginx
  • redis

问题是,我无法通过flask连接到redis数据库。我正在尝试运行此脚本: https://flask-sse.readthedocs.io/en/latest/quickstart.html

它只是不起作用!如果我通过 ssh 连接到 vserver 并运行: redis-cli 它响应“127.0.0.1:6379>”。平工作。

这是gunicorn的启动脚本:ExecStart=/home/foo/boo/mainenv/bin/gunicorn --workers 3 --worker-class gevent --bind unix:mainsite.sock -m 007 wsgi:app server --log-level debug>

这是flask中的代码:

from flask import Flask, render_template, jsonify, request, redirect, url_for, make_response, send_from_directory, Response, stream_with_context
from flask_sse import sse

app = Flask(__name__)


app.config["REDIS_URL"] = "redis://localhost"
app.register_blueprint(sse, url_prefix='/stream')

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

@app.route('/')
def Home():
    return render_template('home.html', title='Home')

if __name__ == '__main__':
    app.run(host='0.0.0.0')
    http_server.serve_forever()

这是javascript

    var source = new EventSource("{{ url_for('sse.stream') }}");
    source.addEventListener('greeting', function(event) {
        var data = JSON.parse(event.data);
        alert("The server says " + data.message);
    }, false);
    source.addEventListener('error', function(event) {
        alert("Failed to connect to event stream. Is Redis running?");
    }, false);

如果你能帮助我就好了...我现在试图解决这个问题 2 天...

0 个答案:

没有答案