code: public WebSocketStepPublisher publish() {
          if (connected.getAndSet(true) == false) {
  
              try {
                  log.info("Connecting");
  
                  boolean connected = chorusWebSocketClient.connectBlocking();
                  if ( ! connected) {
                      throw new StepPublisherException("Failed to connect to WebSocketsManagerImpl");
                  }
  
                  ConnectMessage connect = new ConnectMessage(chorusClientId, "".equals(description) ? chorusClientId : description);
                  chorusWebSocketClient.sendMessage(connect);
  
                  log.info("Publishing steps");
  
                  stepInvokers.values().stream().forEach(invoker -> {
                      publishStep(invoker);
                  });
  
                  log.info("Sending Aligned");
                  StepsAlignedMessage stepsAlignedMessage = new StepsAlignedMessage(chorusClientId);
                  chorusWebSocketClient.sendMessage(stepsAlignedMessage);
  
  
              } catch (Exception e) {
                  throw new ChorusException("Failed to connect and publish steps", e);
              }
          }
          return this;
      }
docs: Connect to the server and publish all steps