Ustaw proxy ClientWebSocket przed połączeniem
Skonfiguruj proxy .NET WebSocket i jego poświadczenia przed nawiązaniem połączenia, trzymając je oddzielnie od poświadczeń miejsca docelowego.
Skonfiguruj opcje ClientWebSocket przed wywołaniem ConnectAsync. Najpierw rozpoczęcie połączenia, a dopiero potem przypisanie proxy jest zbyt późno na ten uścisk dłoni.
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 i zmienne konta są ilustracyjne. Wymagane przestrzenie nazw obejmują System.Net, System.Net.WebSockets i System.Threading. Użyj typu poświadczeń i mechanizmu uwierzytelniania obsługiwanych przez środowisko uruchomieniowe, platformę i usługę proxy w Twoim wdrożeniu.
Poświadczenia WebProxy należą do proxy. ClientWebSocketOptions ma również osobną właściwość Credentials do uwierzytelniania serwera WebSocket. Przypisanie jednego nie zaspokaja automatycznie drugiej strony.
W przypadku bezpiecznego połączenia WebSocket odrzucony tunel proxy może uniemożliwić rozpoczęcie uścisku dłoni WebSocket z miejscem docelowym. Oddziel dowody połączenia i uwierzytelnienia proxy od odpowiedzi HTTP upgrade miejsca docelowego i późniejszego ruchu WebSocket.
Udane połączenie to dopiero początek sesji. Utrzymuj jawną anulację odbioru/wysyłania i czyszczenie zasobów przez cały okres działania aplikacji; termin konfiguracji w tym szkicu nie jest pełną polityką dla każdej kolejnej wiadomości.