登录后在我的应用中,我设置了:
session['venue_id'] = True
在我的javascript
我然后连接到我的websocket
:
var socket = io.connect('http://my.ip.address.' + ':' + '80' + namespace);
这会在我的服务器上触发以下代码:
@socketio.on('connect', namespace='/test')
def test_connect():
if session.get('venue_id'):
session.pop('venue_id', None)
else:
request.namespace.disconnect()
在此之后,我会对我的API
打电话进行检查:
if session.get('venue_id')
然而,它总是很好。我原以为这些requests
不会if
语句venue_id
popped
已经session.pop('venue_id', None)
?
我在这里阅读答案:Python + Flask - Removing key from session too fast
但现在我对{{1}}的目的是什么感到困惑?
非常感谢任何有关清除此事的帮助。
答案 0 :(得分:0)
您需要发送(非websocket)响应才能更改会话。只是弹出值无效,因为浏览器不会更新它的一面,只是再次发送数据下一个请求。现在,申请:
test_connect
事件处理程序之前,因此不会弹出值可能最简单的解决方案是存储会话服务器端,即使不发送响应也可以在其中进行更改。