запускать сервер flashkio socketio как поток или неблокирующий доступ к объекту - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь запустить 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)

, если эта стратегия неэффективна или неверна, я открыт для предложений.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...