diff --git a/engineio/asyncio_server.py b/engineio/asyncio_server.py index 8be9f47e..27f024bb 100644 --- a/engineio/asyncio_server.py +++ b/engineio/asyncio_server.py @@ -203,8 +203,13 @@ async def _handle_connect(self, environ, transport, b64=False): async def _trigger_event(self, event, *args, **kwargs): """Invoke an event handler.""" + ret = None if event in self.handlers: if asyncio.iscoroutinefunction(self.handlers[event]): - await self.handlers[event](*args) + try: + ret = await self.handlers[event](*args) + except asyncio.CancelledError: + pass else: - self.handlers[event](*args) + ret = self.handlers[event](*args) + return ret