Սահմանեք ClientWebSocket-ի պրոքսին միանալուց առաջ
Կարգավորեք .NET WebSocket պրոքսին և դրա հավատարմագրերը մինչև կապի հաստատումը՝ դրանք առանձին պահելով նպատակակետի հավատարմագրերից։
Կարգավորեք 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 երթևեկությունից։
Հաջող կապը միայն սեսիայի սկիզբն է։ Պահեք ստացման/ուղարկման չեղարկումը և ռեսուրսների մաքրումը բացահայտ հավելվածի ողջ կյանքի ընթացքում․ այս ուրվագծի տեղադրման ժամկետը ամբողջական քաղաքականություն չէ յուրաքանչյուր հաջորդ հաղորդագրության համար։