docs: def emit(self, event, data=None, namespace=None, callback=None):
          """Emit a custom event to one or more connected clients.
  
          :param event: The event name. It can be any string. The event names
                        ``'connect'``, ``'message'`` and ``'disconnect'`` are
                        reserved and should not be used.
          :param data: The data to send to the client or clients. Data can be of
                       type ``str``, ``bytes``, ``list`` or ``dict``. If a
                       ``list`` or ``dict``, the data will be serialized as JSON.
          :param namespace: The Socket.IO namespace for the event. If this
                            argument is omitted the event is emitted to the
                            default namespace.
          :param callback: If given, this function will be called to acknowledge
                           the the client has received the message. The arguments
                           that will be passed to the function are those provided
                           by the client. Callback functions can only be used
                           when addressing an individual client.
          """
          namespace = namespace or '/'
          self.logger.info('Emitting event "%s" [%s]', event, namespace)
          if callback is not None:
              id = self._generate_ack_id(namespace, callback)
          else:
              id = None
          if six.PY2 and not self.binary:
              binary = False  # pragma: nocover
          else:
              binary = None
          # tuples are expanded to multiple arguments, everything else is sent
          # as a single argument
          if isinstance(data, tuple):
              data = list(data)
          elif data is not None:
              data = [data]
          else:
              data = []
          self._send_packet(packet.Packet(packet.EVENT, namespace=namespace,
                                          data=[event] + data, id=id,
                                          binary=binary))