Konfigurer ClientWebSockets indstillinger, før du kalder ConnectAsync. At starte forbindelsen først og tildele proxyen bagefter er for sent for det håndtryk.

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

Adresserne og kontovariablerne er illustrative. De krævede navnerum omfatter System.Net, System.Net.WebSockets og System.Threading. Brug den legitimations type og godkendelsesmekanisme, som runtime, platform og proxytjeneste understøtter i din udrulning.

Legitimationsoplysningerne for WebProxy tilhører proxyen. ClientWebSocketOptions har også en separat Credentials-egenskab til WebSocket-serverens godkendelse. Tildeling af den ene opfylder ikke automatisk den anden part.

For en sikker WebSocket-forbindelse kan en afvist proxytunnel forhindre, at destinationens WebSocket-håndtryk overhovedet starter. Adskil bevis for proxyforbindelse og godkendelse fra destinationens HTTP upgrade-svar og senere WebSocket-trafik.

En vellykket forbindelse er kun begyndelsen på sessionen. Hold aflysning af modtagelse/send og oprydning af ressourcer eksplicit gennem applikationens levetid; tidsfristen i denne skitse er ikke en fuldstændig politik for hver efterfølgende meddelelse.

Relaterede artikler