Package org.hildan.krossbow.websocket.reconnection

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
class FixedDelay(delay: Duration) : RetryDelayStrategy

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 shouldReconnect: suspend (exception: Exception, 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,     cause: Exception,     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
fun reconnectConfig(configure: ReconnectConfigBuilder.() -> Unit): ReconnectConfig

Builds a ReconnectConfig.

Link copied to clipboard
fun WebSocketClient.withAutoReconnect(configure: ReconnectConfigBuilder.() -> Unit): WebSocketClient
fun WebSocketClient.withAutoReconnect(config: ReconnectConfig): 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.