首页 > 文章列表 > Flask-SocketIO:重新连接后如何保持房间连接?

Flask-SocketIO:重新连接后如何保持房间连接?

208 2025-03-26

Flask-SocketIO:重新连接后如何保持房间连接?

Flask-SocketIO:重连后无法加入房间的解决方案

在使用Flask-SocketIO时,用户重新连接后无法加入指定房间是一个常见问题。这是因为SocketIO默认会在用户重新连接时将其从所有房间移除。

为了解决这个问题,需要在连接事件(connect)中添加代码,让用户重新加入之前的房间:

@socketio.on('connect', namespace='/chat')
def on_connect():
    user = ...  # 获取用户数据
    if user and user.room:  # 检查用户是否已加入房间
        join_room(user.room)

通过这段代码,当用户重新连接时,如果用户数据中包含房间信息,则会自动将其重新加入到对应的房间中,从而保持房间连接。

来源:1740188468