Flask:在没有 Cookies 的情况下存储 Socket-Connection 变量
Flask: Storing Socket-Connection variables without Cookies
我需要 'variables and activity associated with each client' 不使用 cookie。我如何以及在哪里可以存储这些变量?我对烧瓶和服务器还很陌生。
现在,我想到了使用 python 字典并存储 sessionID 变量对,如下所示。
我觉得这是一个愚蠢的想法,但我想不出替代方案:/。
希望,你能帮助我。
import flask
app = Flask(__name__)
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
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 扩展的服务器端会话。
我需要 'variables and activity associated with each client' 不使用 cookie。我如何以及在哪里可以存储这些变量?我对烧瓶和服务器还很陌生。 现在,我想到了使用 python 字典并存储 sessionID 变量对,如下所示。 我觉得这是一个愚蠢的想法,但我想不出替代方案:/。 希望,你能帮助我。
import flask
app = Flask(__name__)
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'
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 扩展的服务器端会话。