diff --git a/src/pydase/server/server.py b/src/pydase/server/server.py index 9113e4c..a1be480 100644 --- a/src/pydase/server/server.py +++ b/src/pydase/server/server.py @@ -182,6 +182,14 @@ class Server: self._state_manager.load_state() 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: """ 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.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: addin_server = server["server"]( data_service_observer=self._observer, @@ -226,17 +238,6 @@ class Server: server_task = self._loop.create_task(addin_server.serve()) server_task.add_done_callback(self._handle_server_shutdown) 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()) diff --git a/src/pydase/server/web_server/web_server.py b/src/pydase/server/web_server/web_server.py index 5da1631..4417cfc 100644 --- a/src/pydase/server/web_server/web_server.py +++ b/src/pydase/server/web_server/web_server.py @@ -105,13 +105,11 @@ class WebServer: self._service_config_dir = config_dir 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() 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( request: aiohttp.web.Request, ) -> aiohttp.web.Response | aiohttp.web.FileResponse: