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.