Gorilla WebSocket፡ ለ HTTP CONNECT Dialer.Proxy ን ያዋቅሩ
ለ HTTP ወደፊት ተኪ Dialer.Proxy ን ያዋቅሩ፤ አማራጭ የ TCP አድራሻን እንደ ተጠናቀቀ የፕሮክሲ ቱነል አድርጎ ከመውሰድ ይልቅ።
ለ HTTP ወደፊት ተኪ፣ የ Gorilla Dialer.Proxy ን ያዋቅሩ። የ WebSocket URL መድረሻው ሆኖ ይቀጥላል፦
proxyURL, err := url.Parse("http://proxy.example:8080")
if err != nil {
return err
}
dialer := websocket.Dialer{
Proxy: http.ProxyURL(proxyURL),
HandshakeTimeout: 15 * time.Second,
}
conn, response, err := dialer.DialContext(
ctx, "wss://events.example/stream", nil)
ይህ ቁራጭ በመተግበሪያው የግንኙነት ተግባር ውስጥ መሆን አለበት፤ net/url፣ net/http፣ time እና github.com/gorilla/websocket ይገኛሉ። err እና ያልተሳካ የእጅ መጨበጫ ምላሽን ያስተናግዱ፣ ከዚያ conn ን በመደበኛው የመልእክትና የመዝጊያ ዑደት ያስተዳድሩ። ለተፈቀደ የሕዝብ WSS መጨረሻ ነጥብ፣ የ HTTP ፕሮክሲ ዝርዝር ለ proxyURL እጩዎችን ያቀርባል።
የ HTTP ፕሮክሲ ዳይለር የመካከለኛውን ግንኙነት ከፍቶ ለመድረሻው CONNECT ይልካል። ለ wss፣ የመድረሻ TLS ከ WebSocket እጅ መጨበጫ በፊት በተመሠረተው ቱነል በኩል ይከተላል።
NetDialContext ዝቅተኛውን የ TCP ግንኙነት ያበጁል። ወደ ፕሮክሲ ወደብ ብቻ መመራት CONNECT ን አይተገብርም። Proxy ሲዘጋጅም፣ ብጁ የኔትወርክ መመለሻ መካከለኛውን ይደውላል፣ የፕሮክሲ ንብርብሩ ድርድሩን ይይዛል።
የመድረሻውን የአስተናጋጅ ስም በ wss URL ውስጥ ያቆዩ፤ መደበኛው የ TLS ማንነት ማረጋገጫ በታሰበው አገልጋይ ላይ እንዲሠራ።