code: @Override
      public void registerConnectionChangeListener(ConnectionChangeListener listener) {
          connectionListeners.add(listener);
          executor.execute(() -> listener.connectionChange(this, isConnected()));
      }
docs: Register for connection change events, when there is a change in connectivity status
  on the underlying transport.
  
  @param listener the listener