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 قاتلىمى سۆھبەتنى باشقۇرىدۇ.

مەنزىلنىڭ host نامىنى wss URL دا ساقلاڭ، شۇنداق قىلغاندا نورمال TLS سالاھىيەت تەكشۈرۈشى مەقسەت قىلىنغان مۇلازىمېتىرغا قوللىنىلىدۇ.

مۇناسىۋەتلىك ماقالىلەر