@@ -45,7 +45,7 @@ def __init__(
4545 used. Defaults to `None`.
4646 """
4747
48- self ._loop = loop if loop else asyncio . get_running_loop ()
48+ self ._loop = loop
4949 self ._auth = None
5050 self ._pool = None
5151 self ._protocol = None
@@ -78,6 +78,8 @@ def get_event_loop(self) -> asyncio.AbstractEventLoop:
7878 Returns:
7979 AbstractEventLoop: The event loop used by the client.
8080 """
81+ if self ._loop is None :
82+ self ._loop = asyncio .get_running_loop ()
8183 return self ._loop
8284
8385 def is_connected (self ) -> bool :
@@ -247,7 +249,8 @@ def reconnect(self) -> Optional[asyncio.Future[Any]]:
247249 if self ._reconnecting :
248250 return
249251 self ._reconnecting = True
250- return asyncio .ensure_future (self ._reconnect_loop (), loop = self ._loop )
252+ return asyncio .ensure_future (self ._reconnect_loop (),
253+ loop = self .get_event_loop ())
251254
252255 async def wait_closed (self ) -> None :
253256 """Wait for a connection to close.
@@ -594,11 +597,12 @@ async def _connect(self, timeout: Optional[int] = 5):
594597 conn ,
595598 timeout = timeout )
596599 else :
597- conn = self ._loop .create_connection (
600+ loop = self .get_event_loop ()
601+ conn = loop .create_connection (
598602 lambda : Protocol (
599603 on_connection_lost = self ._on_connection_lost ,
600604 on_event = self ._on_event ,
601- loop = self . _loop ),
605+ loop = loop ),
602606 host = host ,
603607 port = port ,
604608 ssl = self ._ssl )
@@ -645,7 +649,8 @@ def _on_event(self, pkg):
645649 logging .warning (
646650 f'Unexpected event: tp:{ pkg .tp } data:{ pkg .data } ' )
647651 else :
648- asyncio .ensure_future (self ._on_room (room_id , pkg ), loop = self ._loop )
652+ asyncio .ensure_future (self ._on_room (room_id , pkg ),
653+ loop = self .get_event_loop ())
649654
650655 def _on_connection_lost (self , protocol , exc ):
651656 if self ._protocol is not protocol :
@@ -678,7 +683,7 @@ async def _reconnect_loop(self):
678683 else :
679684 if protocol and protocol .is_connected ():
680685 # make sure the `old` connection will be dropped
681- self ._loop .call_later (10.0 , protocol .close )
686+ self .get_event_loop () .call_later (10.0 , protocol .close )
682687 break
683688
684689 await asyncio .sleep (wait_time )
0 commit comments