Utzi Go testuinguruari SOCKS konexioaren ezarpena bertan behera
Erabili esportatutako ContextDialer interfazea Go SOCKS bide baterako, eta bereizi konexioaren ezeztapena aplikazioaren ondorengo trafikoaren epeetatik.
func dialViaSOCKS(ctx context.Context, destination string) (net.Conn, error) {
dialer, err := proxy.SOCKS5(
"tcp",
"127.0.0.1:1080",
nil,
&net.Dialer{Timeout: 5 * time.Second},
)
if err != nil {
return nil, err
}
contextDialer, ok := dialer.(proxy.ContextDialer)
if !ok {
return nil, errors.New("SOCKS dialer lacks context support")
}
return contextDialer.DialContext(ctx, "tcp", destination)
}Dagoeneko badagoen Go sare-pakete batean, erabili context, errors, net, time eta x/net/proxy inportazioak. nil argumentuak ez du SOCKS kredentzialik hautatzen. Baimendutako proxy publiko bide bateko helmuga publikorako, SOCKS5 proxy zerrendak dialeraren amaierako punturako hautagaiak eskaintzen ditu.
Esportatutako proxy.ContextDialer baieztapenak onartzen ez diren inplementazioak modu esplizituan hutsarazten ditu. Egiaztatu inplantatutako dependentzia, barneko dialer mota bat izendatu edo deitzaileak kudeatu ezin duen goroutine blokeatzaile bat hasi beharrean.
Testuinguruak konexioaren ezarpena gobernatzen du. net.Conn bat itzuli ondoren, aplikatu irakurketa/idazketa epeak edo maila altuagoko eskaera epeak. Oinarrizko dialer baten konexio-denborazko muga eta aplikazio baten aurrekontu osoa muga desberdinak dira.
HTTP garraioaren integraziorako, atxiki bere TLS eta HTTP jokabide normala. Itzultzen den testuinguruarekiko kontzientea den SOCKS korrontea garraioari egindako entrega da, ez erantzun bat ezta ondorengo byte guztien bizi-politika bat ere.