Documentation
¶
Index ¶
Constants ¶
View Source
const ( ReadBufferSizeFieldName = "server.http.websocket.size.buffer.read" WriteBufferSizeFieldName = "server.http.websocket.size.buffer.write" OriginsFieldName = "server.http.websocket.origins" PingTimeoutFieldName = "server.http.websocket.timeout.ping" WriteTimeoutFieldName = "server.http.websocket.timeout.write" ClientEventBufferSizeFieldName = "server.http.websocket.size.buffer.events" ReadBufferSizeDefault = int(1024) WriteBufferSizeDefault = int(1024) ClientEventBufferSizeDefault = 10 WriteTimeoutDefault = 20 * time.Second PingTimeoutDefault = 60 * time.Second AnyOrigin = "*" )
Variables ¶
View Source
var ( MessageChanFullError = errors.New("message channel is full") MessageChanClosedError = errors.New("message channel is closed") )
View Source
var Component = &component.Component{ Name: "http.server.websocket", Init: component.StepFunc(func(container container.Container) error { return container.Provides(NewConfig, NewUpgrader) }), BindFlags: component.BindFlags(func(flagSet flag.FlagSet, container container.Container) error { return container.Invoke(func(config *Config) { flagSet.IntVar(&config.ReadBufferSize, ReadBufferSizeFieldName, ReadBufferSizeDefault, "") flagSet.IntVar(&config.WriteBufferSize, WriteBufferSizeFieldName, WriteBufferSizeDefault, "") flagSet.IntVar(&config.ClientEventBufferSize, ClientEventBufferSizeFieldName, ClientEventBufferSizeDefault, "") flagSet.DurationVar(&config.WriteTimeout, WriteTimeoutFieldName, WriteTimeoutDefault, "") flagSet.DurationVar(&config.PingTimeout, PingTimeoutFieldName, PingTimeoutDefault, "") flagSet.StringSliceVar(&config.origins, OriginsFieldName, nil, "") }) }), Configuration: component.StepFunc(func(container container.Container) error { return container.Invoke(Configuration) }), }
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
ReadBufferSize int
WriteBufferSize int
ClientEventBufferSize int
WriteTimeout time.Duration
PingTimeout time.Duration
PingInterval time.Duration
Origins set.Set[string]
// contains filtered or unexported fields
}
func Configuration ¶
func Configuration(config *Config, configurator configurator.Configurator) *Config
type Event ¶
type Event struct {
Type string `json:"type,omitempty"`
Payload json.RawMessage `json:"payload,omitempty"`
Timestamp *Timestamp `json:"timestamp,omitempty"`
}
type Handler ¶
type Handler struct {
OnClientConnection emitter.Emitter[*Client]
OnClientDisconnection emitter.Emitter[*Client]
OnMessage emitter.Emitter[*Event]
// contains filtered or unexported fields
}
func NewHandler ¶
Click to show internal directories.
Click to hide internal directories.