Documentation
¶
Overview ¶
Package caddy provides a handler for Caddy Server (https://caddyserver.com/) allowing to transform any Caddy instance into a Mercure hub.
Index ¶
- Variables
- type Bolt
- type JWTConfig
- type Local
- type Mercure
- func (Mercure) CaddyModule() caddy.ModuleInfo
- func (m *Mercure) Cleanup() errordeprecated
- func (m *Mercure) Provision(ctx caddy.Context) error
- func (m Mercure) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) error
- func (m *Mercure) UnmarshalCaddyfile(d *caddyfile.Dispenser) error
- type Transport
- type TransportDestructor
Constants ¶
This section is empty.
Variables ¶
View Source
var ( SubscriptionsContextKey = subscriptionsKeyType{} //nolint:gochecknoglobals WriteTimeoutContextKey = writeTimeoutKeyType{} //nolint:gochecknoglobals )
View Source
var (
ErrCompatibility = errors.New("compatibility mode only supports protocol version 7")
)
View Source
var TransportUsagePool = caddy.NewUsagePool() //nolint:gochecknoglobals
Functions ¶
This section is empty.
Types ¶
type Bolt ¶ added in v0.17.0
type Bolt struct { Path string `json:"path,omitempty"` BucketName string `json:"bucket_name,omitempty"` Size uint64 `json:"size,omitempty"` CleanupFrequency float64 `json:"cleanup_frequency,omitempty"` // contains filtered or unexported fields }
func (Bolt) CaddyModule ¶ added in v0.17.0
func (Bolt) CaddyModule() caddy.ModuleInfo
CaddyModule returns the Caddy module information.
func (*Bolt) GetTransport ¶ added in v0.17.0
type Local ¶ added in v0.17.0
type Local struct {
// contains filtered or unexported fields
}
func (Local) CaddyModule ¶ added in v0.17.0
func (Local) CaddyModule() caddy.ModuleInfo
CaddyModule returns the Caddy module information.
func (*Local) GetTransport ¶ added in v0.17.0
type Mercure ¶
type Mercure struct { // Allow subscribers with no valid JWT. Anonymous bool `json:"anonymous,omitempty"` // Dispatch updates when subscriptions are created or terminated Subscriptions bool `json:"subscriptions,omitempty"` // Enable the demo. Demo bool `json:"demo,omitempty"` // Enable the UI. UI bool `json:"ui,omitempty"` // Maximum duration before closing the connection, defaults to 600s, set to 0 to disable. WriteTimeout *caddy.Duration `json:"write_timeout,omitempty"` // Maximum dispatch duration of an update, defaults to 5s. DispatchTimeout *caddy.Duration `json:"dispatch_timeout,omitempty"` // Frequency of the heartbeat, defaults to 40s. Heartbeat *caddy.Duration `json:"heartbeat,omitempty"` // JWT key and signing algorithm to use for publishers. PublisherJWT JWTConfig `json:"publisher_jwt,omitempty"` // JWK Set URL to use for publishers. PublisherJWKSURL string `json:"publisher_jwks_url,omitempty"` // JWT key and signing algorithm to use for subscribers. SubscriberJWT JWTConfig `json:"subscriber_jwt,omitempty"` // JWK Set URL to use for subscribers. SubscriberJWKSURL string `json:"subscriber_jwks_url,omitempty"` // Origins allowed to publish updates PublishOrigins []string `json:"publish_origins,omitempty"` // Allowed CORS origins. CORSOrigins []string `json:"cors_origins,omitempty"` // Transport to use. // // Deprecated: use transports Caddy modules. TransportURL string `json:"transport_url,omitempty"` // Triggers use of LRU topic selector cache and avoidance of select priority queue (recommend 10,000 - 1,000,000) LRUShardSize *int64 `json:"lru_shard_size,omitempty"` // The name of the authorization cookie. Defaults to "mercureAuthorization". CookieName string `json:"cookie_name,omitempty"` // The version of the Mercure protocol to be backward compatible with (only version 7 is supported) ProtocolVersionCompatibility int `json:"protocol_version_compatibility,omitempty"` // The transport configuration. TransportRaw json.RawMessage `json:"transport,omitempty" caddy:"namespace=http.handlers.mercure inline_key=name"` //nolint:tagalign // contains filtered or unexported fields }
Mercure implements a Mercure hub as a Caddy module. Mercure is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way.
func (Mercure) CaddyModule ¶
func (Mercure) CaddyModule() caddy.ModuleInfo
CaddyModule returns the Caddy module information.
type TransportDestructor ¶ added in v0.17.0
func (TransportDestructor[T]) Destruct ¶ added in v0.17.0
func (d TransportDestructor[T]) Destruct() error
Click to show internal directories.
Click to hide internal directories.