from app.app import create_app from flask_socketio import SocketIO, emit from werkzeug.middleware.proxy_fix import ProxyFix from app.app import mongo app = create_app() # print(app) app.wsgi_app = ProxyFix( app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1 ) # 初始化SocketIO socketio = SocketIO(app, cors_allowed_origins="*") # 定义集合 rooms_collection = { "all": mongo.db.chatAll, # 所有人聊天 "one2one": mongo.db.chatOne2One, # 一对一聊天 "more2more": mongo.db.chatMore2More # 多对多聊天 } @socketio.on('message') def handle_message(data): print(data) room_id = data["roomId"] if room_id in rooms_collection: collection = rooms_collection[room_id] collection.insert_one(data) response_event = f'responseMsg_{room_id}' # broadcast_flag = room_id != 'one2one' broadcast_flag = True if '_id' in data: del data['_id'] emit(response_event, data, broadcast=broadcast_flag) else: print(f"Unsupported room: {room_id}") if __name__ == '__main__': #app.run(debug=True)#若调试,可考虑开启debug模式,修改代码后服务自动重启,使修改生效,方便调试,生产环境 # app.run(host="0.0.0.0", port=5569, debug=True) socketio.run(app, host="0.0.0.0", port=5569, debug=True) # 使用 socketio.run 替换 app.run