Package-level declarations
Types
Link copied to clipboard
class ExponentialBackOff(initialDelay: Duration = 1.seconds, factor: Double = 2.0) : RetryDelayStrategy
A RetryDelayStrategy where the delay is multiplied by a constant factor after each attempt.
Link copied to clipboard
A RetryDelayStrategy where the delay is the same for all attempts.
Link copied to clipboard
data class ReconnectConfig(val maxAttempts: Int = DEFAULT_MAX_ATTEMPTS, val delayStrategy: RetryDelayStrategy = DEFAULT_DELAY_STRATEGY, val reconnectContext: CoroutineContext = EmptyCoroutineContext, val shouldReconnect: suspend (exception: Throwable, attempt: Int) -> Boolean = { _, _ -> true }, val afterReconnect: suspend (WebSocketConnection) -> Unit = {})
Configuration for web socket reconnections.
Link copied to clipboard
class ReconnectConfigBuilder
Link copied to clipboard
interface RetryDelayStrategy
Defines the time to wait before each attempt in a retry mechanism.
Link copied to clipboard
class WebSocketReconnectionException(val url: String, val nAttemptedReconnections: Int, val cause: Throwable, message: String = "Could not reconnect to web socket at $url after $nAttemptedReconnections attempts. Giving up. " +
"The exception during the last attempt was $cause") : WebSocketConnectionException
Functions
Link copied to clipboard
Builds a ReconnectConfig.
Link copied to clipboard
fun WebSocketClient.withAutoReconnect(configure: ReconnectConfigBuilder.() -> Unit): WebSocketClient
fun WebSocketClient.withAutoReconnect(maxAttempts: Int = DEFAULT_MAX_ATTEMPTS, delayStrategy: RetryDelayStrategy = DEFAULT_DELAY_STRATEGY): WebSocketClient
Returns a new WebSocketClient that automatically reconnects on web socket errors using this client.