| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
-
- 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
-
|