code: @Override
      public String onCompleted() throws Exception {
          futureDone();
  
          if (closed.get()) return "";
  
          if (status == Socket.STATUS.ERROR) {
              return "";
          }
  
          if (options.reconnect()) {
              close(false);
              if (options.reconnectTimeoutInMilliseconds() > 0) {
                  timer.schedule(new Runnable() {
                      public void run() {
                          status = Socket.STATUS.REOPENED;
                          reconnect();
                      }
                  }, options.reconnectTimeoutInMilliseconds(), TimeUnit.MILLISECONDS);
              } else {
                  status = Socket.STATUS.REOPENED;
                  reconnect();
              }
          } else {
              close();
          }
          return "";
      }
docs: {@inheritDoc}