Konfigurirajte mogućnosti 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 naziva uključuju System.Net, System.Net.WebSockets i System.Threading. Koristite vrstu vjerodajnica i mehanizam autentifikacije koje podržavaju runtime, platforma i proxy usluga u vašem postavljanju.

Vjerodajnice WebProxy pripadaju proxyju. ClientWebSocketOptions ima i zasebno svojstvo Credentials za autentifikaciju WebSocket poslužitelja. Dodjela jednoga 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 prometa.

Uspješna veza samo je početak sesije. Držite otkazivanje primanja/slanja i čišćenje resursa eksplicitnima tijekom cijelog životnog vijeka aplikacije; rok za postavljanje u ovoj skici nije potpuna politika za svaku sljedeću poruku.

Povezani članci