Nakonfigurujte možnosti ClientWebSocket před voláním ConnectAsync. Nejprve zahájit připojení a potom přiřadit proxy je pro toto handshake příliš pozdě.

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

Adresy a proměnné účtu jsou ilustrativní. Požadované obory názvů zahrnují System.Net, System.Net.WebSockets a System.Threading. Použijte typ přihlašovacích údajů a mechanismus ověřování, které podporují runtime, platforma a proxy služba ve vašem nasazení.

Přihlašovací údaje WebProxy patří proxy. ClientWebSocketOptions má také samostatnou vlastnost Credentials pro ověřování serveru WebSocket. Přiřazení jedněch automaticky neuspokojí druhou stranu.

U zabezpečeného připojení WebSocket může odmítnutý tunel proxy zabránit tomu, aby handshake WebSocket cíle vůbec začal. Oddělte důkazy o připojení a ověření proxy od odpovědi HTTP upgrade cíle a pozdějšího provozu WebSocket.

Úspěšné připojení je jen začátek relace. Udržujte zrušení příjmu/odesílání a čištění prostředků explicitní po celou dobu životnosti aplikace; lhůta pro nastavení v tomto náčrtu není úplná politika pro každou další zprávu.

Související články