docs: void disconnect(boolean force) {
      synchronized (this) {
        if (force || subscriptions.isEmpty()) {
          transport.disconnect(new OperationClientMessage.Terminate());
          State disconnectionState = (state == State.STOPPING) ? State.STOPPED : State.DISCONNECTED;
          setStateAndNotify(disconnectionState);
          subscriptions = new LinkedHashMap<>();
        }
      }
    }