code: async def _trigger_event(self, event, *args, **kwargs):
          
          run_async = kwargs.pop('run_async', False)
          ret = None
          if event in self.handlers:
              if asyncio.iscoroutinefunction(self.handlers[event]) is True:
                  if run_async:
                      return self.start_background_task(self.handlers[event],
                                                        *args)
                  else:
                      try:
                          ret = await self.handlers[event](*args)
                      except asyncio.CancelledError:  # pragma: no cover
                          pass
                      except:
                          self.logger.exception(event + ' async handler error')
                          if event == 'connect':
                              # if connect handler raised error we reject the
                              # connection
                              return False
              else:
                  if run_async:
                      async def async_handler():
                          return self.handlers[event](*args)
  
                      return self.start_background_task(async_handler)
                  else:
                      try:
                          ret = self.handlers[event](*args)
                      except:
                          self.logger.exception(event + ' handler error')
                          if event == 'connect':
                              # if connect handler raised error we reject the
                              # connection
                              return False
          return ret
docs: Invoke an event handler.