Postavite ClientWebSocket proxy prije povezivanja
Konfigurirajte .NET WebSocket proxy i njegove akreditive prije uspostavljanja veze, držeći ih odvojeno od akreditiva odredišta.
Konfigurirajte opcije ClientWebSocket prije poziva ConnectAsync. Započeti vezu pa dodijeliti proxy nakon toga prekasno je za taj handshake.
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);
Adrese i varijable računa su ilustrativne. Potrebni prostori imena uključuju System.Net, System.Net.WebSockets i System.Threading. Koristite tip akreditiva i mehanizam autentifikacije koje podržavaju runtime, platforma i proxy servis u vašem postavljanju.
Akreditivi WebProxy pripadaju proxyju. ClientWebSocketOptions ima i zasebno svojstvo Credentials za autentifikaciju WebSocket servera. Dodjela jednog ne zadovoljava automatski drugu stranu.
Za sigurnu WebSocket vezu, odbijeni proxy tunel može spriječiti da handshake WebSocketa odredišta uopće počne. Odvojite dokaze proxy veze i autentifikacije od HTTP upgrade odgovora odredišta i kasnijeg WebSocket saobraćaja.
Uspješna veza je samo početak sesije. Držite otkazivanje prijema/slanja i čišćenje resursa eksplicitnim tokom cijelog životnog vijeka aplikacije; rok za postavljanje u ovoj skici nije potpuna politika za svaku narednu poruku.