Gorilla WebSocket․ կարգավորեք Dialer.Proxy-ն HTTP CONNECT-ի համար
Կարգավորեք Dialer.Proxy-ն HTTP forward proxy-ի համար՝ այլընտրանքային TCP հասցեն որպես ավարտված proxy թունել չդիտարկելու փոխարեն։
HTTP forward proxy-ի համար կարգավորեք 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 proxy ցանկը տրամադրում է թեկնածուներ proxyURL-ի համար։
HTTP proxy dialer-ը բացում է միջնորդ միացումը և ուղարկում CONNECT նպատակակետի համար։ wss-ի դեպքում նպատակակետի TLS-ը անցնում է հաստատված թունելով՝ WebSocket handshake-ից առաջ։
NetDialContext-ը հարմարեցնում է ցածր մակարդակի TCP միացումը։ Միայն proxy պորտին ուղղելը չի իրականացնում CONNECT։ Երբ Proxy-ն նույնպես սահմանված է, հարմարեցված ցանցային callback-ը կապվում է միջնորդի հետ, իսկ proxy շերտը զբաղվում է բանակցությամբ։
Պահեք նպատակակետի հոսթի անունը wss URL-ում, որպեսզի սովորական TLS ինքնության ստուգումը կիրառվի նախատեսված սերվերի նկատմամբ։