docs: public void sendClose() throws IOException {
          closeReason = "";
          closeCode = CloseMessage.NORMAL_CLOSURE;
          StreamSinkFrameChannel closeChannel = send(WebSocketFrameType.CLOSE);
          closeChannel.shutdownWrites();
          if (!closeChannel.flush()) {
              closeChannel.getWriteSetter().set(ChannelListeners.flushingChannelListener(
                      null, new ChannelExceptionHandler<StreamSinkChannel>() {
                  @Override
                  public void handleException(final StreamSinkChannel channel, final IOException exception) {
                      IoUtils.safeClose(WebSocketChannel.this);
                  }
              }
              ));
              closeChannel.resumeWrites();
          }
      }