private static Scheme validateScheme(Scheme scheme) {
        final SerializationFormat serializationFormat = scheme.serializationFormat();
        if ((serializationFormat == SerializationFormat.WS ||
             serializationFormat == SerializationFormat.NONE) &&
            httpAndHttpsValues().contains(scheme.sessionProtocol())) {
            if (serializationFormat == SerializationFormat.WS) {
                return scheme;
            }
            return Scheme.of(SerializationFormat.WS, scheme.sessionProtocol());
        }
        throw invalidSchemeException(scheme.toString());
    }
Builds a {@link WebSocketClient}.
This client has the different default options from {@link WebClient}. Here are the differences:
<ul>
  <li>{@link ClientOptions#RESPONSE_TIMEOUT_MILLIS} is {@code 0}.</li>
  <li>{@link ClientOptions#MAX_RESPONSE_LENGTH} is {@code 0}.</li>
  <li>{@link ClientOptions#REQUEST_AUTO_ABORT_DELAY_MILLIS} is {@code 5000}.</li>
  <li>{@link ClientOptions#AUTO_FILL_ORIGIN_HEADER} is {@code true}.</li>
</ul>
core/src/main/java/com/linecorp/armeria/client/websocket/WebSocketClientBuilder.java