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 ինքնության ստուգումը կիրառվի նախատեսված սերվերի նկատմամբ։

Առնչվող հոդվածներ