#[non_exhaustive]pub struct Timing {
pub ping_interval: Option<Duration>,
pub stale_after: Duration,
pub initial_backoff: Duration,
pub max_backoff: Duration,
pub connect_timeout: Duration,
pub max_connection_age: Option<Duration>,
}Expand description
The timings a supervised connection runs on.
Every field is public, so a venue reads them directly and sets them through
timing_setters!. The defaults are the kit’s: a
ping every 20 s, stale after 30 s of silence, reconnect backoff from 500 ms
doubling to 60 s, a 10 s connect timeout, and no rotation. Each venue sets
its own: one pings after a 5 s quiet tick, one sends no pings and goes
stale after 45 s, and one rotates at 23 h 50 min.
The basis is the setters of four socket crates’ supervised builders,
which stored the same five values. Two of those builders hold a Timing
since Stories 4.6 and 4.7; the other two keep their own fields (D7).
What the values mean stays with each venue:
- D4, the ping schedule. One venue pings only after a quiet tick, two
on the wall clock whatever the traffic, and one never
(
ping_interval: None); a fifth pings every 10 s. Each venue sets its own default, and never copies the quiet-tick shape to a host that requires pings. - D5, liveness. What restarts the
stale_afterwindow, each the rule of one venue: any frame, a decoded event, any text frame (a pong included), or pings included.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.ping_interval: Option<Duration>How often to ping, or None for never.
stale_after: DurationSilence after which a connection is presumed dead.
initial_backoff: DurationThe first reconnect delay.
max_backoff: DurationThe reconnect delay’s ceiling.
connect_timeout: DurationHow long one connection attempt may take.
max_connection_age: Option<Duration>How long a connection may live before it is replaced, or None for
as long as it lasts.
Implementations§
Source§impl Timing
impl Timing
Sourcepub fn backoff(&self) -> Backoff
pub fn backoff(&self) -> Backoff
A fresh reconnect schedule from initial_backoff
to max_backoff.
Sourcepub fn next_wait(
&self,
since_ping: Duration,
silent: Duration,
age: Duration,
) -> Duration
pub fn next_wait( &self, since_ping: Duration, silent: Duration, age: Duration, ) -> Duration
The wait until the first of this connection’s deadlines: the next ping,
the staleness limit and the rotation, given the time since the last
ping, the silence so far and the connection’s age. See next_wait.