diff --git a/src/pydase/client/client.py b/src/pydase/client/client.py index 9b00ad6..999ea0a 100644 --- a/src/pydase/client/client.py +++ b/src/pydase/client/client.py @@ -134,19 +134,7 @@ class Client: def connect(self, block_until_connected: bool = True) -> None: if self._thread is None or self._loop is None: - if self._proxy_url is not None: - session = aiohttp.ClientSession( - connector=aiohttp_socks.connector.ProxyConnector.from_url( - url=self._proxy_url, loop=self._loop - ), - loop=self._loop, - ) - self._sio = socketio.AsyncClient( - http_session=session, **self._sio_client_kwargs - ) - else: - self._sio = socketio.AsyncClient(**self._sio_client_kwargs) - + self._initialize_socketio_client() self._loop = self._initialize_loop_and_thread() connection_future = asyncio.run_coroutine_threadsafe( @@ -155,6 +143,20 @@ class Client: if block_until_connected: connection_future.result() + def _initialize_socketio_client(self) -> None: + if self._proxy_url is not None: + session = aiohttp.ClientSession( + connector=aiohttp_socks.connector.ProxyConnector.from_url( + url=self._proxy_url, loop=self._loop + ), + loop=self._loop, + ) + self._sio = socketio.AsyncClient( + http_session=session, **self._sio_client_kwargs + ) + else: + self._sio = socketio.AsyncClient(**self._sio_client_kwargs) + def _initialize_loop_and_thread(self) -> asyncio.AbstractEventLoop: """Initialize a new asyncio event loop, start it in a background thread, and create the ProxyClass instance bound to that loop.