mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-06-23 20:47:59 +02:00
Merge pull request #242 from tiqi-group/refactor/web-server-initialisation
Refactor: web server initialisation
This commit is contained in:
@ -182,6 +182,14 @@ class Server:
|
|||||||
self._state_manager.load_state()
|
self._state_manager.load_state()
|
||||||
autostart_service_tasks(self._service)
|
autostart_service_tasks(self._service)
|
||||||
|
|
||||||
|
self._web_server = WebServer(
|
||||||
|
data_service_observer=self._observer,
|
||||||
|
host=self._host,
|
||||||
|
port=self._web_port,
|
||||||
|
enable_frontend=self._enable_web,
|
||||||
|
**self._kwargs,
|
||||||
|
)
|
||||||
|
|
||||||
def run(self) -> None:
|
def run(self) -> None:
|
||||||
"""
|
"""
|
||||||
Initializes the asyncio event loop and starts the server.
|
Initializes the asyncio event loop and starts the server.
|
||||||
@ -211,6 +219,10 @@ class Server:
|
|||||||
self._loop.set_exception_handler(self.custom_exception_handler)
|
self._loop.set_exception_handler(self.custom_exception_handler)
|
||||||
self.install_signal_handlers()
|
self.install_signal_handlers()
|
||||||
|
|
||||||
|
server_task = self._loop.create_task(self._web_server.serve())
|
||||||
|
server_task.add_done_callback(self._handle_server_shutdown)
|
||||||
|
self.servers["web"] = server_task
|
||||||
|
|
||||||
for server in self._additional_servers:
|
for server in self._additional_servers:
|
||||||
addin_server = server["server"](
|
addin_server = server["server"](
|
||||||
data_service_observer=self._observer,
|
data_service_observer=self._observer,
|
||||||
@ -226,17 +238,6 @@ class Server:
|
|||||||
server_task = self._loop.create_task(addin_server.serve())
|
server_task = self._loop.create_task(addin_server.serve())
|
||||||
server_task.add_done_callback(self._handle_server_shutdown)
|
server_task.add_done_callback(self._handle_server_shutdown)
|
||||||
self.servers[server_name] = server_task
|
self.servers[server_name] = server_task
|
||||||
self._web_server = WebServer(
|
|
||||||
data_service_observer=self._observer,
|
|
||||||
host=self._host,
|
|
||||||
port=self._web_port,
|
|
||||||
enable_frontend=self._enable_web,
|
|
||||||
**self._kwargs,
|
|
||||||
)
|
|
||||||
server_task = self._loop.create_task(self._web_server.serve())
|
|
||||||
|
|
||||||
server_task.add_done_callback(self._handle_server_shutdown)
|
|
||||||
self.servers["web"] = server_task
|
|
||||||
|
|
||||||
self._loop.create_task(self._state_manager.autosave())
|
self._loop.create_task(self._state_manager.autosave())
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ def setup_sio_server(
|
|||||||
def sio_callback(
|
def sio_callback(
|
||||||
full_access_path: str, value: Any, cached_value_dict: SerializedObject
|
full_access_path: str, value: Any, cached_value_dict: SerializedObject
|
||||||
) -> None:
|
) -> None:
|
||||||
if cached_value_dict != {}:
|
if cached_value_dict != {} and loop.is_running():
|
||||||
|
|
||||||
async def notify() -> None:
|
async def notify() -> None:
|
||||||
try:
|
try:
|
||||||
|
@ -105,13 +105,11 @@ class WebServer:
|
|||||||
|
|
||||||
self._service_config_dir = config_dir
|
self._service_config_dir = config_dir
|
||||||
self._generate_web_settings = generate_web_settings
|
self._generate_web_settings = generate_web_settings
|
||||||
self._loop: asyncio.AbstractEventLoop
|
self._loop = asyncio.get_event_loop()
|
||||||
|
self._sio = setup_sio_server(self.observer, self.enable_cors, self._loop)
|
||||||
self._initialise_configuration()
|
self._initialise_configuration()
|
||||||
|
|
||||||
async def serve(self) -> None:
|
async def serve(self) -> None:
|
||||||
self._loop = asyncio.get_running_loop()
|
|
||||||
self._sio = setup_sio_server(self.observer, self.enable_cors, self._loop)
|
|
||||||
|
|
||||||
async def index(
|
async def index(
|
||||||
request: aiohttp.web.Request,
|
request: aiohttp.web.Request,
|
||||||
) -> aiohttp.web.Response | aiohttp.web.FileResponse:
|
) -> aiohttp.web.Response | aiohttp.web.FileResponse:
|
||||||
|
Reference in New Issue
Block a user