uniapp,h5

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from app.app import create_app
  2. from flask_socketio import SocketIO, emit
  3. from werkzeug.middleware.proxy_fix import ProxyFix
  4. from app.app import mongo
  5. app = create_app()
  6. # print(app)
  7. app.wsgi_app = ProxyFix(
  8. app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1
  9. )
  10. # 初始化SocketIO
  11. socketio = SocketIO(app, cors_allowed_origins="*")
  12. # 定义集合
  13. rooms_collection = {
  14. "all": mongo.db.chatAll, # 所有人聊天
  15. "one2one": mongo.db.chatOne2One, # 一对一聊天
  16. "more2more": mongo.db.chatMore2More # 多对多聊天
  17. }
  18. @socketio.on('message')
  19. def handle_message(data):
  20. print(data)
  21. room_id = data["roomId"]
  22. if room_id in rooms_collection:
  23. collection = rooms_collection[room_id]
  24. collection.insert_one(data)
  25. response_event = f'responseMsg_{room_id}'
  26. # broadcast_flag = room_id != 'one2one'
  27. broadcast_flag = True
  28. if '_id' in data:
  29. del data['_id']
  30. emit(response_event, data, broadcast=broadcast_flag)
  31. else:
  32. print(f"Unsupported room: {room_id}")
  33. if __name__ == '__main__':
  34. #app.run(debug=True)#若调试,可考虑开启debug模式,修改代码后服务自动重启,使修改生效,方便调试,生产环境
  35. # app.run(host="0.0.0.0", port=5569, debug=True)
  36. socketio.run(app, host="0.0.0.0", port=5569, debug=True) # 使用 socketio.run 替换 app.run