Կարգավորեք ClientWebSocket-ի ընտրանքները մինչև ConnectAsync կանչելը։ Նախ կապը սկսելը, ապա պրոքսին նշանակելը չափազանց ուշ է այդ ձեռքսեղմման համար։

using var socket = new ClientWebSocket();
socket.Options.Proxy = new WebProxy("http://203.0.113.10:8080")
{
    Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
await socket.ConnectAsync(new Uri("wss://example.com/socket"),
                          deadline.Token);

Հասցեները և հաշվի փոփոխականները օրինակելի են։ Պահանջվող անվանատարածքները ներառում են System.Net, System.Net.WebSockets և System.Threading։ Օգտագործեք այն հավատարմագրի տեսակը և նույնականացման մեխանիզմը, որոնք աջակցում են runtime-ը, հարթակը և պրոքսի ծառայությունը ձեր տեղակայման մեջ։

WebProxy-ի հավատարմագրերը պատկանում են պրոքսիին։ ClientWebSocketOptions-ն ունի նաև առանձին Credentials հատկություն WebSocket սերվերի նույնականացման համար։ Մեկը նշանակելը ինքնաբերաբար չի բավարարում մյուս կողմին։

Անվտանգ WebSocket կապի դեպքում մերժված պրոքսի թունելը կարող է ընդհանրապես կանխել նպատակակետի WebSocket ձեռքսեղմման սկսվելը։ Առանձնացրեք պրոքսի կապի և նույնականացման ապացույցները նպատակակետի HTTP upgrade պատասխանից և հետագա WebSocket երթևեկությունից։

Հաջող կապը միայն սեսիայի սկիզբն է։ Պահեք ստացման/ուղարկման չեղարկումը և ռեսուրսների մաքրումը բացահայտ հավելվածի ողջ կյանքի ընթացքում․ այս ուրվագծի տեղադրման ժամկետը ամբողջական քաղաքականություն չէ յուրաքանչյուր հաջորդ հաղորդագրության համար։

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