Skip to content

Interface: Timings ​

Every timeout in the SDK, in one object, with the reason for each.

5000, 45000, 15000 and "3 attempts" written inline at the sites that use them leave no way to change any of them for a test or a slow network, and a test that has to wait out a real 45-second heartbeat is a test nobody runs.

The defaults that come from the protocol are marked. Those are not tuning knobs: a client that pings every 30 s is closed by the server at 45 s, so changing them changes whether the SDK is conformant.

Properties ​

PropertyTypeDescription
connectTimeoutMsnumberHow long a ConnectRequest may take to be answered. The server's own budget is 5 s from socket open to the frame arriving; this covers the round trip after it.
iceDisconnectedGraceMsnumberMedia recovery, step 1: how long ICE may stay disconnected before the ladder starts. The browser has already waited out its own silence window by then — Chrome says disconnected 6–7 s into an outage and failed 10 s after that (measured) — so this is a short margin for one that comes back by itself, and waiting for failed instead put the first rung 16–17 s into an outage.
iceRestartTimeoutMsnumberMedia recovery, step 1 to 2: an ICE restart that has not reached connected in this long is not going to.
mediaRecoveryMaxAttemptsnumberMedia recovery takes at most three steps, then gives up.
pingIntervalMsnumberThe protocol's: the client must ping every 15 s, carrying last_seq_received.
pongTimeoutMsnumberThe protocol's: a missing Pong for 20 s is a dead socket.
qualityPoorStreaknumberThree consecutive poor samples start the media recovery ladder.
reconnectBackoffMsreadonly number[]Reconnect delays, in order. Jitter is not decoration: without it a signaling node restart brings every client back inside the same 500 ms.
reconnectGiveUpMsnumberA session outlives its socket by 900 s, so there is nothing to resume to after that and the controller stops trying.
reconnectJitternumber±30 % of each step.
requestTimeoutMsnumberAny other request. Generous because answering a call crosses two servers, a database and a lock.
statsIntervalLargeRoomMsnumber…15 s in rooms over 12 participants: at 50, a 5-second sample is 500 rows a second from one room.
statsIntervalMsnumbergetStats() every 5 s per track.
statsLargeRoomThresholdnumber-
subscriptionBatchMsnumberHow long display hints (Track.setDisplay) are gathered into one SetSubscriptions: a scrolled grid moves many tiles in one frame.

Talkline documentation