烧瓶:存储没有 Cookie 的套接字连接变量



我需要在不使用cookie的情况下拥有"与每个客户端关联的变量和活动"。如何以及在哪里存储此变量?我对烧瓶和服务器很陌生。 现在,我想使用 python 字典并存储 sessionID 变量对,如下所示。 我有一种感觉,这是一个愚蠢的想法,但我想不出替代方案:/。 希望,你能帮助我。

import flask  
app = Flask(__name__)
app.secret_key = b'_5#y2L"F4Q8znxec]/'
enter code heresocketio = SocketIO(app)
cache = {}
@app.route('/')
def index():
return send_from_directory('static', "index.html")
@socketio.on('savePseudonym')
def sendKeepAlive(): 
cache[(request.sid,'pseudonym')]= pseudonym
cache[(request.sid,'time')]= time
if __name__ == "__main__":
socketio.run(app, debug=True)

您可以使用session,或多或少与使用 Flask 路由的方式相同。

from flask import session
@socketio.on('savePseudonym')
def sendKeepAlive(): 
session['pseudonym'] = pseudonym
session['time'] = time

唯一要记住的是,由于 Socket.IO 会话不基于 Cookie,因此您在 Socket.IO 处理程序中对会话所做的任何更改都不会显示在 Flask 会话 Cookie 上。如果需要在 Flask 路由和 Socket.IO 事件处理程序之间共享会话,则可以将服务器端会话与 Flask-Session 扩展一起使用。

最新更新