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 ഇടനിലക്കാരനുമായി ബന്ധപ്പെടുന്നു; പ്രോക്സി പാളി ചർച്ചകൾ കൈകാര്യം ചെയ്യുന്നു.

ഉദ്ദേശിച്ച സെർവറിന് സാധാരണ TLS ഐഡന്റിറ്റി പരിശോധന ബാധകമാകാൻ wss URL-ൽ ലക്ഷ്യസ്ഥാനത്തിന്റെ ഹോസ്റ്റ്നാമം നിലനിർത്തുക.

അനുബന്ധ ലേഖനങ്ങൾ