38 lines
780 B
Go
38 lines
780 B
Go
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
|
|
|
|
GetSocketHandler() SocketHandler
|
|
GetURL() string
|
|
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()
|
|
}
|