DefaultJoinerReconnectController

constructor(roomId: RoomId, reconnectWindowMs: Long = DEFAULT_RECONNECT_WINDOW_MS, clock: () -> Long, scope: CoroutineScope)

Parameters

roomId

The Room this controller guards. Tokens for a different Room are rejected as ResumeResult.TokenInvalid.

reconnectWindowMs

Duration of the reconnect window in millis. Defaults to DEFAULT_RECONNECT_WINDOW_MS (60 s).

clock

Injected clock returning epoch-millis. Must never be wired to System.currentTimeMillis() from commonMain production code; the JVM wiring layer (your dependency injection container) passes { System.currentTimeMillis() }. Tests pass a fixed or advancing value so no wall-clock coupling escapes.

scope

Coroutine scope that owns per-peer timer jobs. Must outlive this controller; typically the Room's scope.