gpt4 book ai didi

python - 在 SocketIO 命名空间中使用 flask session 数据时出错

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:14 26 4
gpt4 key购买 nike

我正在尝试在用户的 id 命名空间上监听新的 socketIO 连接。用户 ID 存储在 flask session 对象中。

 @socketio.on('connect', namespace=session['userId'])
def test_connect():
emit('newMessage')

此代码产生以下错误:

raise RuntimeError('working outside of request context')

如何让上述连接监听器在请求上下文中运行?

谢谢!

最佳答案

不幸的是,这无法完成,因为 namespace 不是动态的,您必须使用静态字符串作为 namespace 。

SocketIO 中命名空间的思想不是添加有关连接的信息,而是允许客户端与服务器打开多个单独的 channel 。命名空间允许 SocketIO 协议(protocol)将所有这些 channel 多路复用到一个物理连接中。

您要做的是提供连接到服务器的输入参数。为此,只需将值添加到您的有效负载中:

@socketio.on('connect', namespace='/chat')
def test_connect():
userid = session['userId']
# ...

关于python - 在 SocketIO 命名空间中使用 flask session 数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28419758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com