python - 访问 Flask-socketio session 时出现问题

标签 python flask socket.io eventlet flask-socketio

当我使用flask-socketio运行本地应用程序时,我可以使用from Flask import session访问 session ,但是当我使用flask-socketio运行它时gunicorn 在服务器上(gunicorn --worker-class eventlet -w 1 app:app)它返回我 session.keys() 作为 数组[0]

如何修复它以在服务器上建立此本地代理与 session ?

谢谢

from flask import Flask, render_template, session, request
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)


@app.before_request
def before_request():
    session['key_1'] = 'Hello,'
    session['key_2'] = 'World'


@app.route('/')
def index():
    return render_template('index.html')


@socketio.on('connect', namespace='/')
def socket_connect():
    session_keys = session.keys()
    emit('connect response', {
        'session_keys': session_keys
    })


@socketio.on('disconnect', namespace='/')
def socket_disconnect():
    print('Client disconnected', request.sid)

if __name__ == '__main__':
    socketio.run(app)

最佳答案

我找到了解决方案。 session 消失并且无法共享到 socketio,因为我在 cloudflare 上为我的域添加了重定向页面规则。 当我将所有规则的转发类型更改为 302 - 临时时,一切正常。

关于python - 访问 Flask-socketio session 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182794/

相关文章:

python - flask 中的 pyserial 读取串行端口(可能使用 gevent)

node.js - Node js、socket.io、redis 和 pm2

node.js - Socket.io 命名空间限制以及如何扩展它

python 如何每天在特定时间运行一个函数,但也可以终止

Python tkinter - 当用户展开窗口时如何调整小部件的大小

python - 如何在 numpy 中向量化这个循环差异?

python - 如何覆盖 Flask 蓝图 URL?

python - 填充多对多字段

validation - WTForms 自定义验证器 - RadioField 上的RequiredIf

node.js - 如何将变量从 app.js 导出到 Node js 中的另一个路由