Documentation ¶
Index ¶
- func IsWebSocket(r *http.Request) bool
- func WrapWithErrorHandler(next http.Handler, errorHandler ErrorHandler) http.Handler
- func WrapWithFallback(handler http.Handler, fallback []byte, headers map[string]string) http.Handler
- type CSSEResourceCacher
- type ErrorHandler
- type Options
- type Resource
- type ResourceCacher
- func (c *ResourceCacher) AddResource(res *Resource, onUpdate ResourceEvent) (*Resource, error)
- func (c *ResourceCacher) RemoveResource(alias string) (*Resource, error)
- func (c *ResourceCacher) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (c *ResourceCacher) Start()
- func (c *ResourceCacher) Stop()
- type ResourceEvent
- type Resources
- type SSEOptions
- type SSEResourceCacher
- type WebAppProxy
- type WebSocketReverseProxy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsWebSocket ¶
IsWebSocket determines whether or not an http request is using websocket
Types ¶
type CSSEResourceCacher ¶ added in v0.3.0
type CSSEResourceCacher struct { *ResourceCacher // contains filtered or unexported fields }
CSSEResourceCacher is an SSE variant of Resource Cacher
func NewCSSEResourceCacher ¶ added in v0.3.0
func NewCSSEResourceCacher(opts *SSEOptions) *CSSEResourceCacher
NewCSSEResourceCacher returns a new SSE resource cachner
func (*CSSEResourceCacher) ServeHTTP ¶ added in v0.3.0
func (c *CSSEResourceCacher) ServeHTTP(w http.ResponseWriter, r *http.Request)
type ErrorHandler ¶
type ErrorHandler func(w http.ResponseWriter, status int)
ErrorHandler defines a custom error handler
type Options ¶ added in v0.2.0
Options represents a set of resource cacher options
type Resource ¶ added in v0.2.0
type Resource struct { Alias string Method string URL string Interval time.Duration Content []byte Header http.Header StatusCode int Hash string OldHash string AllowedOrigins []string // contains filtered or unexported fields }
Resource represents a single resource to cache
func (*Resource) Fetch ¶ added in v0.2.0
Fetch makes the request to obtain the resource and caches the result
func (*Resource) IsOriginAllowed ¶ added in v0.2.0
IsOriginAllowed checks if origin is valid
func (*Resource) StartFetcher ¶ added in v0.2.0
func (r *Resource) StartFetcher()
StartFetcher starts the automatic fetcher
func (*Resource) StopFetcher ¶ added in v0.2.0
func (r *Resource) StopFetcher()
StopFetcher stops the automatic fetcher
func (*Resource) WriteHeaders ¶ added in v0.2.0
func (r *Resource) WriteHeaders(w http.ResponseWriter)
WriteHeaders write the header to a response writer
type ResourceCacher ¶
type ResourceCacher struct { OnResourceAdded ResourceEvent OnResourceUpdated ResourceEvent OnResourceRemoved ResourceEvent OnStarted func() OnStopped func() // contains filtered or unexported fields }
ResourceCacher creates a reverse proxy that caches the results
func NewResourceCacher ¶
func NewResourceCacher(opts *Options) *ResourceCacher
NewResourceCacher creates a new resource cacher
func (*ResourceCacher) AddResource ¶ added in v0.2.0
func (c *ResourceCacher) AddResource(res *Resource, onUpdate ResourceEvent) (*Resource, error)
AddResource adds a new resource to the resource cacher
func (*ResourceCacher) RemoveResource ¶ added in v0.2.0
func (c *ResourceCacher) RemoveResource(alias string) (*Resource, error)
RemoveResource removes an existing resource from the resource cacher
func (*ResourceCacher) ServeHTTP ¶
func (c *ResourceCacher) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP to implement net/http.Handler for ResourceCacher
type ResourceEvent ¶ added in v0.2.0
type ResourceEvent func(res *Resource)
ResourceEvent represents a callback fn
type SSEOptions ¶ added in v0.2.0
SSEOptions augments Resource Cacher Options
type SSEResourceCacher ¶ added in v0.2.0
type SSEResourceCacher struct { *ResourceCacher // contains filtered or unexported fields }
SSEResourceCacher is an SSE variant of Resource Cacher
func NewSSEResourceCacher ¶ added in v0.2.0
func NewSSEResourceCacher(opts *SSEOptions) *SSEResourceCacher
NewSSEResourceCacher returns a new SSE resource cachner
func (*SSEResourceCacher) ServeHTTP ¶ added in v0.2.0
func (c *SSEResourceCacher) ServeHTTP(w http.ResponseWriter, r *http.Request)
type WebAppProxy ¶
type WebAppProxy struct {
// contains filtered or unexported fields
}
WebAppProxy creates a reverse proxy typically used for nodejs webapps
func NewWebAppProxy ¶
func NewWebAppProxy(url *url.URL) *WebAppProxy
NewWebAppProxy creates a new webapp proxy
func (WebAppProxy) ServeHTTP ¶
func (p WebAppProxy) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP to implement net/http.Handler for WebAppProxy
type WebSocketReverseProxy ¶
WebSocketReverseProxy implements http.HandlerFunc to reverse proxy websocket requests
func NewWebSocketReverseProxy ¶
func NewWebSocketReverseProxy(url *url.URL) *WebSocketReverseProxy
NewWebSocketReverseProxy creates a new websocket reverse proxy
func (*WebSocketReverseProxy) Close ¶
func (ws *WebSocketReverseProxy) Close() error
Close closes the ws proxy
func (*WebSocketReverseProxy) ServeHTTP ¶
func (ws *WebSocketReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request)