code: @Override
      public void processConnect(WebSocketChannel channel, WSURI location, String[] protocols) {
          LOG.entering(CLASS_NAME, "connect", channel);
          WebSocketCompositeChannel compositeChannel = (WebSocketCompositeChannel)channel;
          
          if (compositeChannel.readyState != ReadyState.CLOSED) {
              LOG.warning("Attempt to reconnect an existing open WebSocket to a different location");
              throw new IllegalStateException("Attempt to reconnect an existing open WebSocket to a different location");
          }
  
          compositeChannel.readyState = ReadyState.CONNECTING;
          compositeChannel.requestedProtocols = protocols;
          
          String scheme = compositeChannel.getCompositeScheme();
          if (scheme.indexOf(":") >= 0) {
              // qualified scheme: e.g. "java:wse" 
              WebSocketStrategy strategy = strategyMap.get(scheme);
              if (strategy == null) {
                  throw new IllegalArgumentException("Invalid connection scheme: "+scheme);
              }
              
              LOG.finest("Turning off fallback since the URL is prefixed with java:");
              compositeChannel.connectionStrategies.add(scheme);
          }
          else {
              String[] connectionStrategies = strategyChoices.get(scheme);
              if (connectionStrategies != null) {
                  for (String each : connectionStrategies) {
                      compositeChannel.connectionStrategies.add(each);
                  }
              }
              else {
                  throw new IllegalArgumentException("Invalid connection scheme: "+scheme);
              }
          }
  
          fallbackNext(compositeChannel, null);
      }
docs: Connect the WebSocket object to the remote location
  @param channel WebSocket channel
  @param location location of the WebSocket
  @param protocol protocol spoken over the WebSocket