import "code.pfad.fr/gohmekit/hapip/notification"
type Coalescer interface { io.WriterTo // Coalescer must return itself on error (not nil!) Coalesce(io.WriterTo) (Coalescer, error) }
Coalescer allows event to be merged together to prevent sending too many events in a short time.
type Manager[Key comparable] struct { // If a connection is active, events will not be sent (to prevent corruption). // EventBuffer indicates the number of events to buffer (per connection), // which will be delivered when the connection is back to idle. EventBuffer int // CoalesceDuration will prevent too many events from being delivered after another. // Standard recommands 1s CoalesceDuration time.Duration Logger log.Logger // contains filtered or unexported fields }
Manager manages notifications. m.ConnContext & m.ConnState must be registered on the http.Server respective fields.
Publish an event. If the event is a Coalescer it might be throtteled.