code: public synchronized CompletableFuture<Void> kill() {
      if (state == State.CLOSED)
        return CompletableFuture.completedFuture(null);
  
      if (closeFuture == null) {
        closeFuture = session.kill()
          .whenComplete((result, error) -> {
            setState(State.CLOSED);
            CompletableFuture.runAsync(() -> {
              ioContext.close();
              eventContext.close();
              transport.close();
            });
          });
      }
      return closeFuture;
    }
docs: Kills the client.
  
  @return A completable future to be completed once the client's session has been killed.