feat(web_server.py): use socketio
This commit is contained in:
@@ -7,6 +7,7 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from flask import Flask
|
||||
from flask_login import LoginManager
|
||||
from flask_socketio import SocketIO
|
||||
|
||||
from judas_server.web.user import load_user
|
||||
|
||||
@@ -37,6 +38,8 @@ class JudasWebServer:
|
||||
# extensions
|
||||
self.login_manager: LoginManager = LoginManager()
|
||||
|
||||
self.socketio: SocketIO = SocketIO(self.app, cors_allowed_origins="*")
|
||||
|
||||
self.configure_extensions()
|
||||
self.init_routes()
|
||||
|
||||
@@ -50,13 +53,20 @@ class JudasWebServer:
|
||||
|
||||
def init_routes(self) -> None:
|
||||
self.logger.debug("Initializing routes...")
|
||||
from judas_server.web.routes import auth_bp, index_bp, panel_bp
|
||||
from judas_server.web.routes import (
|
||||
auth_bp,
|
||||
index_bp,
|
||||
panel_bp,
|
||||
api,
|
||||
)
|
||||
|
||||
self.app.register_blueprint(index_bp)
|
||||
self.app.register_blueprint(auth_bp)
|
||||
self.app.register_blueprint(panel_bp)
|
||||
self.app.register_blueprint(api.bp)
|
||||
api.emit_polled_data(self.app, self.socketio)
|
||||
|
||||
def run(self, host: str = "0.0.0.0", port: int = 5000) -> None:
|
||||
self.logger.info(f"Starting web server on {host}:{port}...")
|
||||
self.app.run(host=host, port=port)
|
||||
self.socketio.run(app=self.app, host=host, port=port)
|
||||
self.logger.info("Server stopped.")
|
||||
|
||||
Reference in New Issue
Block a user