Documentation ¶
Overview ¶
Package proxy of reverse handler based fasthttp this lib ref to: Issue: https://github.com/valyala/fasthttp/issues/64 Code: https://golang.org/src/net/http/httputil/reverseproxy.go Pool Ref: https://github.com/fatih/pool/blob/master/channel.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultUpgrader specifies the parameters for upgrading an HTTP // connection to a WebSocket connection. DefaultUpgrader = &websocket.FastHTTPUpgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } // DefaultDialer is a dialer with all fields set to the default zero values. DefaultDialer = websocket.DefaultDialer )
Functions ¶
Types ¶
type Factory ¶
type Factory func(string) (*ReverseProxy, error)
Factory the generator to creat ReverseProxy
type Pool ¶
type Pool interface { // Get returns a new ReverseProxy from the pool. Get(string) (*ReverseProxy, error) // Put Reseting the ReverseProxy puts it back to the Pool. Put(*ReverseProxy) error // Close closes the pool and all its connections. After Close() the pool is // no longer usable. Close() // Len returns the current number of connections of the pool. Len() int }
Pool interface ... this interface ref to: https://github.com/fatih/pool/blob/master/pool.go
type Proxier ¶
type Proxier interface { ServeHTTP(ctx *fasthttp.RequestCtx) // ? SetClient(addr string) Proxier // Reset . Reset() // Close . Close() }
Proxier can be HTTP or WebSocket proxier TODO:
type ReverseProxy ¶
type ReverseProxy struct {
// contains filtered or unexported fields
}
ReverseProxy reverse handler using fasthttp.HostClient TODO: support https config
func NewReverseProxy ¶
func NewReverseProxy(oldAddr string, opts ...Option) *ReverseProxy
NewReverseProxy create an ReverseProxy with options
func (*ReverseProxy) ServeHTTP ¶
func (p *ReverseProxy) ServeHTTP(ctx *fasthttp.RequestCtx)
ServeHTTP ReverseProxy to serve ref to: https://golang.org/src/net/http/httputil/reverseproxy.go#L169
func (*ReverseProxy) SetClient ¶
func (p *ReverseProxy) SetClient(addr string) *ReverseProxy
SetClient ...
type WSReverseProxy ¶
type WSReverseProxy struct { // Upgrader specifies the parameters for upgrading a incoming HTTP // connection to a WebSocket connection. If nil, DefaultUpgrader is used. Upgrader *websocket.FastHTTPUpgrader // Dialer contains options for connecting to the backend WebSocket server. // If nil, DefaultDialer is used. Dialer *websocket.Dialer // contains filtered or unexported fields }
WSReverseProxy . refer to https://github.com/koding/websocketproxy
func NewWSReverseProxy ¶
func NewWSReverseProxy(host, path string) *WSReverseProxy
NewWSReverseProxy .
func (*WSReverseProxy) ServeHTTP ¶
func (w *WSReverseProxy) ServeHTTP(ctx *fasthttp.RequestCtx)
ServeHTTP WSReverseProxy to serve