Configureer de opties van ClientWebSocket voordat u ConnectAsync aanroept. Eerst de verbinding starten en de proxy daarna toewijzen is te laat voor die 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);

De adressen en accountvariabelen zijn illustratief. De vereiste naamruimten omvatten System.Net, System.Net.WebSockets en System.Threading. Gebruik het referentietype en het authenticatiemechanisme dat de runtime, het platform en de proxyservice in uw implementatie ondersteunen.

De referenties van WebProxy behoren tot de proxy. ClientWebSocketOptions heeft ook een aparte Credentials-eigenschap voor de authenticatie van de WebSocket-server. Het toewijzen van de ene voldoet niet automatisch aan de andere partij.

Bij een beveiligde WebSocket-verbinding kan een geweigerde proxytunnel verhinderen dat de WebSocket-handshake van de bestemming überhaupt begint. Scheid het bewijs van proxyverbinding en -authenticatie van de HTTP-upgrade-reactie van de bestemming en het latere WebSocket-verkeer.

Een geslaagde verbinding is slechts het begin van de sessie. Houd het annuleren van ontvangen/verzenden en het opruimen van resources expliciet gedurende de hele levensduur van de applicatie; de insteltermijn in deze schets is geen volledig beleid voor elk volgend bericht.

Gerelateerde artikelen