Gorilla WebSocket: קאָנפיגורירן Dialer.Proxy פֿאַר HTTP CONNECT
קאָנפיגורירט Dialer.Proxy פֿאַר אַ HTTP פֿאָרויס־פּראָקסי אַנשטאָט באַטראַכטן אַן אַלטערנאַטיווע TCP אַדרעס ווי אַ פֿאַרענדיקטער פּראָקסי טונעל.
פֿאַר אַ 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 גייט די ציל־TLS דורך דעם אויסגעשטעלטן טונעל פֿאַר דער WebSocket handshake.
NetDialContext פּאַסט אָן די נידעריקערע TCP פֿאַרבינדונג. בלויז אָנווײַזן אויף אַ פּראָקסי פּאָרט אימפּלעמענטירט נישט CONNECT. ווען Proxy איז אויך געשטעלט, רופֿט דער געאייגנטער נעץ־callback דעם צווישנמאַן, בשעת די פּראָקסי שיכט פֿירט די פֿאַרהאַנדלונג.
האַלט דעם ציל־האָסטנאָמען אין דער wss URL אַזוי די נאָרמאַלע TLS אידענטיטעט־פּרופֿונג זאָל גילטן פֿאַר דעם געמיינטן סערווער.