_drainQueue(force = false) {
    if (!this.connected || this._queue.length === 0) {
      return;
    }
    const packet = this._queue[0];
    if (packet.pending && !force) {
      return;
    }
    packet.pending = true;
    packet.tryCount++;
    this.flags = packet.flags;
    this.emit.apply(this, packet.args);
  }
Send the first packet of the queue, and wait for an acknowledgement from the server.
@param force - whether to resend a packet that has not been acknowledged yet

@private