SOCKS උමගක් TCP සම්බන්ධතාවයක් රැගෙන යයි. Go හට එම උමග හරහා ගමනාන්තය සමඟ TLS සිදු කළ හැකි අතර එහිදී HTTP/2 සාකච්ඡා කළ හැක; SOCKS සේවාදායකයටම HTTP/2 කථා කිරීම අවශ්‍ය නැත.

Go හි සම්මත පෙරනිමි ප්‍රවාහනය රඳවා ගන්නා වැඩසටහනක, එහි වින්‍යාසය පිටපත් කර ප්‍රොක්සිය තෝරන්න:

import (
    "net/http"
    "net/url"
    "time"
)

proxyURL := &url.URL{
    Scheme: "socks5",
    Host: "proxy.example:1080",
}
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
client := &http.Client{
    Transport: transport,
    Timeout: 30 * time.Second,
}

ප්‍රොක්සිය සහ ගමනාන්තය වෙනස් අගයන් ලෙසම පවතී. ප්‍රොක්සි අගය සඳහා SOCKS5 ප්‍රොක්සි ලැයිස්තුවවෙන් SOCKS5 අන්ත ලක්ෂ්‍යයක් තෝරන්න; HTTP/2 තවමත් ගමනාන්තය සමඟ සාකච්ඡා වේ. සැබෑ HTTPS සේවා URL ඉල්ලා සිටීමට client භාවිත කර, පසුව යෙදුමේ සාමාන්‍ය ජීවන චක්‍රය හරහා ප්‍රතිචාර ඛණ්ඩය වසන්න.

සම්මත පෙරනිමි ප්‍රවාහනය HTTP/2 සඳහා සහාය දක්වයි. එය පිටපත් කිරීම එම වින්‍යාසය රඳවා ගනිමින් ප්‍රොක්සි තේරීම වෙනස් කිරීමට ඉඩ දෙයි. වර්ග පරීක්ෂාව උපකල්පනය කරන්නේ වැඩසටහන http.DefaultTransport වෙනත් RoundTripper එකකින් ප්‍රතිස්ථාපනය නොකළ බවයි.

වෙන වෙනම ගොඩනගන ලද ප්‍රවාහනයක් සඳහා, එහි HTTP/2 වින්‍යාසය සමාලෝචනය කරන්න, විශේෂයෙන් අභිරුචි dial හෝ TLS කොකු සපයන විට. Go ForceAttemptHTTP2 සහ නව නිකුතුවල එම තේරීම් සඳහා පැහැදිලි Protocols වින්‍යාසය ලබා දෙයි.

ගමනාන්තය තවමත් TLS සාකච්ඡාව හරහා HTTP/2 පිරිනැමිය යුතුය. කුමක් භාවිත කළාදැයි බැලීමට සාර්ථක ප්‍රතිචාරයේ Proto හෝ ProtoMajor අගය පරීක්ෂා කරන්න. SOCKS හරහා සාර්ථක වන HTTPS ඉල්ලීමක් තමන් විසින්ම සාකච්ඡා වූ ප්‍රොටෝකෝලය HTTP/2 වූ බව ඔප්පු නොකරයි.

අදාළ ලිපි