Rec*_*ive 6 beaker flask gevent-socketio
早上好,
我遇到了一些麻烦,我希望有人能在这里帮助我.我想要做的是访问Gevent Socket-IO Name空间中的Flask会话.
我曾尝试将beaker用作中间件客户端,但我仍然无法从socket-io名称空间中访问和更新会话信息.
我对这一切都很陌生,所以任何帮助都将不胜感激.
使用默认的 Flask 会话,似乎可以在命名空间初始化时共享(通过只读访问)会话数据。
session_dict=dict(session)
socketio_manage(request.environ, {'/news': NewsNamespace}, request=session_dict)
Run Code Online (Sandbox Code Playgroud)
session_dict
然后就可以像self.request
在命名空间中一样进行访问。这是一个 hack,但 Flask/werkzeug 会话似乎无法在请求上下文之外工作。
我在 Flask 会话中放置了一个会话 ID(随机生成的 uuid)。然后,Flask 视图和命名空间都知道会话 ID,并且都可以以会话 ID 作为键在 Redis 或其他数据存储中的服务器端会话中读取/写入数据。
这只是我用于在 Flask 和 gevent-socketio 之间共享会话的解决方案;我还没有尝试过 Beaker,不确定您在使用它时遇到了什么具体问题,或者是否有更好的解决方案。
归档时间: |
|
查看次数: |
820 次 |
最近记录: |