package clt_client import ( "net" "net/http" "sync" "time" ) var once sync.Once var CltClient cltclient func GetClient() cltclient { once.Do(func() { CltClient = cltclient{ HttpClient: http.Client{ Timeout: 30 * time.Second, Transport: &http.Transport{ DialContext: (&net.Dialer{ Timeout: 3 * time.Second, KeepAlive: 30 * time.Second, }).DialContext, MaxIdleConns: 100, MaxIdleConnsPerHost: 10, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 5 * time.Second, ExpectContinueTimeout: 1 * time.Second, }, }, } CltClient.LoadVsn() }) return CltClient } type cltclient struct { HttpClient http.Client }