package client import ( "crypto/tls" "net" "net/http" "net/url" "time" cuc "git.loafle.net/commons_go/util/context" ) type SocketBuilder interface { SocketContext(parent cuc.Context) SocketContext SocketHandler() SocketHandler GetURL() *url.URL GetRequestCookie() http.CookieJar GetRequestHeader() http.Header GetSubProtocols() []string IsEnableCompression() bool UseProxy(req *http.Request) (*url.URL, error) GetHandshakeTimeout() time.Duration Dial(network, addr string) (net.Conn, error) GetTLSConfig() *tls.Config GetReadBufferSize() int GetWriteBufferSize() int // Validate is check handler value // If you override ths method, must call // // func (sh *SocketHandlers) Validate() { // sh.SocketHandlers.Validate() // ... // } Validate() }