Gorilla WebSocket: HTTP CONNECT కోసం Dialer.Proxy కాన్ఫిగర్ చేయండి
ప్రత్యామ్నాయ TCP చిరునామాను పూర్తయిన ప్రాక్సీ సొరంగంగా పరిగణించకుండా HTTP ఫార్వర్డ్ ప్రాక్సీ కోసం Dialer.Proxy కాన్ఫిగర్ చేయండి.
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 మరియు విఫలమైన handshake ప్రతిస్పందనను నిర్వహించి, తర్వాత సాధారణ సందేశం మరియు మూసివేత జీవిత చక్రం ద్వారా conn నిర్వహించండి. అనుమతించబడిన పబ్లిక్ WSS ఎండ్పాయింట్ కోసం, HTTP ప్రాక్సీ జాబితా proxyURL కోసం అభ్యర్థులను అందిస్తుంది.
HTTP ప్రాక్సీ డయలర్ మధ్యవర్తి కనెక్షన్ను తెరిచి గమ్యస్థానానికి CONNECT పంపుతుంది. wss కోసం, WebSocket handshake ముందు ఏర్పాటు చేసిన సొరంగం ద్వారా గమ్యస్థాన TLS వెళుతుంది.
NetDialContext దిగువ స్థాయి TCP కనెక్షన్ను అనుకూలీకరిస్తుంది. దాన్ని ప్రాక్సీ పోర్ట్కు మాత్రమే చూపించడం CONNECT అమలు చేయదు. Proxy కూడా సెట్ చేయబడితే, అనుకూల నెట్వర్క్ callback మధ్యవర్తిని సంప్రదిస్తుంది, ప్రాక్సీ పొర చర్చలను నిర్వహిస్తుంది.
wss URLలో గమ్యస్థాన హోస్ట్నేమ్ను ఉంచండి, తద్వారా సాధారణ TLS గుర్తింపు తనిఖీ ఉద్దేశించిన సర్వర్కు వర్తిస్తుంది.