io.quarkus.websockets.next.WebSocketsClientRuntimeConfig Maven / Gradle / Ivy
Show all versions of quarkus-websockets-next Show documentation
package io.quarkus.websockets.next;
import java.time.Duration;
import java.util.Optional;
import java.util.OptionalInt;
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;
import io.smallrye.config.WithParentName;
@ConfigMapping(prefix = "quarkus.websockets-next.client")
@ConfigRoot(phase = ConfigPhase.RUN_TIME)
public interface WebSocketsClientRuntimeConfig {
/**
* Compression Extensions for WebSocket are supported by default.
*
* See also RFC 7692
*/
@WithDefault("false")
boolean offerPerMessageCompression();
/**
* The compression level must be a value between 0 and 9. The default value is
* {@value io.vertx.core.http.HttpClientOptions#DEFAULT_WEBSOCKET_COMPRESSION_LEVEL}.
*/
OptionalInt compressionLevel();
/**
* The maximum size of a message in bytes. The default values is
* {@value io.vertx.core.http.HttpClientOptions#DEFAULT_MAX_WEBSOCKET_MESSAGE_SIZE}.
*/
OptionalInt maxMessageSize();
/**
* The interval after which, when set, the client sends a ping message to a connected server automatically.
*
* Ping messages are not sent automatically by default.
*/
Optional autoPingInterval();
/**
* The strategy used when an error occurs but no error handler can handle the failure.
*
* By default, the error message is logged when an unhandled failure occurs.
*
* Note that clients should not close the WebSocket connection arbitrarily. See also RFC-6455
* section 7.3.
*/
@WithDefault("log")
UnhandledFailureStrategy unhandledFailureStrategy();
/**
* The name of the TLS configuration to use.
*
* If a name is configured, it uses the configuration from {@code quarkus.tls..*}
* If a name is configured, but no TLS configuration is found with that name then an error will be thrown.
*
* The default TLS configuration is not used by default.
*/
Optional tlsConfigurationName();
/**
* Traffic logging config.
*/
TrafficLoggingConfig trafficLogging();
/**
* Telemetry configuration.
*/
@WithParentName
TelemetryConfig telemetry();
}