Add FlapperState class and per-client exponential backoff tracking to MqttSessionStore. New TrackConnectDisconnect(string) overload returns FlapperState with backoff level and expiry; IsFlapper, GetBackoffMs, ClearFlapperState, and CheckAndClearStableClients give callers full visibility and cleanup control. Legacy two-arg overload preserved for backward compatibility. Ten unit tests cover counting, threshold, exponential growth, 60s cap, window reset, and stable-client sweep.
9.7 KiB
9.7 KiB