Documentation ¶
Overview ¶
Package websocketproxy is a reverse proxy for WebSocket connections.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // DefaultUpgrader specifies the parameters for upgrading an HTTP // connection to a WebSocket connection. DefaultUpgrader = &websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, } // DefaultDialer is a dialer with all fields set to the default zero values. DefaultDialer = websocket.DefaultDialer // DefaultReplicator is a simple message passthrough DefaultReplicator = passthroughReplicator )
Functions ¶
Types ¶
type MessageReplicatorFunc ¶
type WebsocketProxy ¶
type WebsocketProxy struct { // Director, if non-nil, is a function that may copy additional request // headers from the incoming WebSocket connection into the output headers // which will be forwarded to another server. Director func(incoming *http.Request, out http.Header) // IncomeReplicator is a function that forward messages incoming from origin // into the backend. If nil, passthroughsReplicator is used. IncomeReplicator MessageReplicatorFunc // BackendReplicator is a function that forwards messages from backend into // origin. If nil, passthroughsReplicator is used. BackendReplicator MessageReplicatorFunc // Backend returns the backend URL which the proxy uses to reverse proxy // the incoming WebSocket connection. Request is the initial incoming and // unmodified request. Backend func(*http.Request) *url.URL // Upgrader specifies the parameters for upgrading a incoming HTTP // connection to a WebSocket connection. If nil, DefaultUpgrader is used. Upgrader *websocket.Upgrader // Dialer contains options for connecting to the backend WebSocket server. // If nil, DefaultDialer is used. Dialer *websocket.Dialer }
WebsocketProxy is an HTTP Handler that takes an incoming WebSocket connection and proxies it to another server.
func NewProxy ¶
func NewProxy(target *url.URL) *WebsocketProxy
NewProxy returns a new Websocket reverse proxy that rewrites the URL's to the scheme, host and base path provider in target.
func (*WebsocketProxy) ServeHTTP ¶
func (w *WebsocketProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request)
ServeHTTP implements the http.Handler that proxies WebSocket connections.
Click to show internal directories.
Click to hide internal directories.