Konfigurirajte možnosti ClientWebSocket, preden pokličete ConnectAsync. Najprej začeti povezavo in nato dodeliti proxy je za ta rokovanje prepozno.

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);

Naslovi in spremenljivke računa so ilustrativni. Zahtevani imenski prostori vključujejo System.Net, System.Net.WebSockets in System.Threading. Uporabite vrsto poverilnic in mehanizem preverjanja pristnosti, ki ju podpirajo runtime, platforma in proxy storitev v vaši namestitvi.

Poverilnice WebProxy pripadajo proxyju. ClientWebSocketOptions ima tudi ločeno lastnost Credentials za preverjanje pristnosti strežnika WebSocket. Dodelitev enega samodejno ne zadovolji druge strani.

Pri varni povezavi WebSocket lahko zavrnjen proxy tunel prepreči, da se rokovanje WebSocket s ciljem sploh začne. Ločite dokaze o povezavi in preverjanju pristnosti proxyja od odgovora HTTP upgrade cilja in poznejšega prometa WebSocket.

Uspešna povezava je le začetek seje. Vzdržujte preklic prejemanja/pošiljanja in čiščenje virov izrecno ves čas delovanja aplikacije; rok za nastavitev v tej skici ni popolna politika za vsako naslednje sporočilo.

Sorodni članki