File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -571,7 +571,7 @@ async def _read_loop_polling(self):
571571
572572 async def _read_loop_websocket (self ):
573573 """Read packets from the Engine.IO WebSocket connection."""
574- while self .state == 'connected' :
574+ while self .state == 'connected' and self . write_loop_task :
575575 p = None
576576 try :
577577 p = await asyncio .wait_for (
@@ -672,7 +672,6 @@ async def _write_loop(self):
672672 if r .status < 200 or r .status >= 300 :
673673 self .logger .warning ('Unexpected status code %s in server '
674674 'response, aborting' , r .status )
675- self .write_loop_task = None
676675 break
677676 else :
678677 # websocket
@@ -690,3 +689,4 @@ async def _write_loop(self):
690689 'aborting' )
691690 break
692691 self .logger .info ('Exiting write loop task' )
692+ self .write_loop_task = None
Original file line number Diff line number Diff line change @@ -521,7 +521,7 @@ def _read_loop_polling(self):
521521
522522 def _read_loop_websocket (self ):
523523 """Read packets from the Engine.IO WebSocket connection."""
524- while self .state == 'connected' :
524+ while self .state == 'connected' and self . write_loop_task :
525525 p = None
526526 try :
527527 p = self .ws .recv ()
@@ -616,7 +616,6 @@ def _write_loop(self):
616616 if r .status_code < 200 or r .status_code >= 300 :
617617 self .logger .warning ('Unexpected status code %s in server '
618618 'response, aborting' , r .status_code )
619- self .write_loop_task = None
620619 break
621620 else :
622621 # websocket
@@ -634,3 +633,4 @@ def _write_loop(self):
634633 'WebSocket connection was closed, aborting' )
635634 break
636635 self .logger .info ('Exiting write loop task' )
636+ self .write_loop_task = None
Original file line number Diff line number Diff line change @@ -101,7 +101,10 @@ def test_schedule_ping(self):
101101 s = socket .Socket (mock_server , 'sid' )
102102 s .send = mock .MagicMock ()
103103 s .schedule_ping ()
104- time .sleep (0.05 )
104+ for _ in range (10 ):
105+ time .sleep (0.05 )
106+ if s .last_ping is not None :
107+ break
105108 assert s .last_ping is not None
106109 assert s .send .call_args_list [0 ][0 ][0 ].encode () == '2'
107110
You can’t perform that action at this time.
0 commit comments