Documentation
¶
Overview ¶
Package ws implements a WebSocket hub that bridges the internal event bus to connected browser clients.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Hub ¶
type Hub struct {
// contains filtered or unexported fields
}
Hub manages connected WebSocket clients and fans events out to them.
func NewHub ¶
NewHub creates a Hub that broadcasts events to connected WebSocket clients. The apiKey is used to authenticate non-browser clients (same-origin browser requests are trusted via the Sec-Fetch-Site header).
func (*Hub) HandleEvent ¶
HandleEvent implements events.Handler. It marshals the event to JSON and delivers it to every connected client. Slow clients are dropped (non-blocking send) to prevent one lagging browser from stalling all others.
func (*Hub) ServeHTTP ¶
func (h *Hub) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP upgrades the connection to WebSocket and starts pumping events to the client. Same-origin browser requests (Sec-Fetch-Site: same-origin) are trusted; external clients must provide a valid X-Api-Key header.