fix: clean up leaked contexts on SSE disconnect and add orphan reaper
When clients disconnect without beforeunload firing (network drops, mobile kills, crashes), contexts leaked in the registry permanently. - Extract cleanupCtx helper for dispose/unregister sequence - Call cleanupCtx on SSE disconnect (sse.Context().Done()) - Add background reaper for contexts where SSE never connected - Add ContextTTL config option (default 30s, negative disables) - Fix inverted condition in devModeRemovePersisted
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package via
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/alexedwards/scs/v2"
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
@@ -54,4 +56,9 @@ type Options struct {
|
||||
// PubSub enables publish/subscribe messaging. Use vianats.New() for an
|
||||
// embedded NATS backend, or supply any PubSub implementation.
|
||||
PubSub PubSub
|
||||
|
||||
// ContextTTL is the maximum time a context may exist without an SSE
|
||||
// connection before the background reaper disposes it.
|
||||
// Default: 30s. Negative value disables the reaper.
|
||||
ContextTTL time.Duration
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user