Я пытаюсь запустить flaskio (socketio с flask) в фоновом потоке. Функцией веб-сервера является GUI, который обслуживает до 2 клиентов. GUI не должен иметь приоритет над моими основными l oop и другими функциями. В настоящее время я использую свой сервер FlashKio таким образом:
socketio.run(self.app, debug=False, port=80, host="0.0.0.0")
, который блокируется. Я попытался сделать поток класса таким:
class webserverThread(Thread):
def __init__(self, app, ini):
super(webserverThread, self).__init__()
self.app = app
def start_server(self):
print("starting webapp")
socketio.run(self.app, debug=False, port=80, host="0.0.0.0")
self.thread.join()
def start(self):
self.start_server()
, который также блокирует. Я также хочу предоставить экземпляр объекта серверу, чтобы я мог вызывать функции и свойства после посещения моих веб-страниц и нажатия кнопок.
, например:
class my_flask_object:
def __init__(self, app, ob):
self.app = app
self.ob = ob
def print_ob(self):
print(ob)
def start_server(self):
socketio.run(app, debug=True, port=80, host="0.0.0.0")
, чтобы я мог можно распечатать данные объекта в шаблоне моей веб-страницы следующим образом:
@app.route('/')
def first_route():
return render_template('first', data=data)
, если эта стратегия неэффективна или неверна, я открыт для предложений.
Заранее спасибо!