Documentation

Overview

    Package caddy provides a handler for Caddy Server (https://caddyserver.com/) allowing to transform any Caddy instance into a Mercure hub.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type JWTConfig

    type JWTConfig struct {
    	Key string `json:"key,omitempty"`
    	Alg string `json:"alg,omitempty"`
    }

    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 string `json:"demo,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.
    	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"`
    
    	// JWT key and signing algorithm to use for subscribers.
    	SubscriberJWT JWTConfig `json:"subscriber_jwt,omitempty"`
    
    	// Origins allowed to publish updates
    	PublishOrigins []string `json:"publish_origins,omitempty"`
    
    	// Allowed CORS origins.
    	CORSOrigins []string `json:"cors_origins,omitempty"`
    
    	// Transport to use.
    	TransportURL string `json:"transport_url,omitempty"`
    
    	// Number of cache counters, defaults to 6e7, set to -1 to disable the cache. See https://github.com/dgraph-io/ristretto for details.
    	CacheNumCounters *int64 `json:"cache_max_counters,omitempty"`
    
    	// Maximum cache cost, defaults to 100MB, set to -1 to disable the cache. See https://github.com/dgraph-io/ristretto for details.
    	CacheMaxCost *int64 `json:"cache_max_cost,omitempty"`
    	// 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.

        func (*Mercure) Cleanup

        func (m *Mercure) Cleanup() error

        func (*Mercure) Provision

        func (m *Mercure) Provision(ctx caddy.Context) error

        func (Mercure) ServeHTTP

        func (m Mercure) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) error

        func (*Mercure) UnmarshalCaddyfile

        func (m *Mercure) UnmarshalCaddyfile(d *caddyfile.Dispenser) error

          UnmarshalCaddyfile sets up the handler from Caddyfile tokens.

          Source Files

          Directories

          Path Synopsis
          Copied from https://github.com/caddyserver/xcaddy/blob/b7fd102f41e12be4735dc77b0391823989812ce8/environment.go#L251
          Copied from https://github.com/caddyserver/xcaddy/blob/b7fd102f41e12be4735dc77b0391823989812ce8/environment.go#L251