Impostare il proxy di ClientWebSocket prima di connettersi
Configurare un proxy .NET WebSocket e le sue credenziali prima dell'instaurazione della connessione, tenendole separate dalle credenziali di destinazione.
Configurare le opzioni di ClientWebSocket prima di chiamare ConnectAsync. Avviare prima la connessione e assegnare il proxy in seguito è troppo tardi per quella stretta di mano.
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);
Gli indirizzi e le variabili dell'account sono esemplificativi. Gli spazi dei nomi richiesti includono System.Net, System.Net.WebSockets e System.Threading. Usare il tipo di credenziali e il meccanismo di autenticazione supportati dal runtime, dalla piattaforma e dal servizio proxy nella propria distribuzione.
Le credenziali di WebProxy appartengono al proxy. ClientWebSocketOptions ha anche una proprietà Credentials separata per l'autenticazione del server WebSocket. Assegnarne una non soddisfa automaticamente l'altra parte.
In una connessione WebSocket sicura, un tunnel proxy rifiutato può impedire del tutto l'inizio della stretta di mano WebSocket della destinazione. Separare le prove di connessione e autenticazione del proxy dalla risposta HTTP upgrade della destinazione e dal traffico WebSocket successivo.
Una connessione riuscita è solo l'inizio della sessione. Mantenere espliciti la cancellazione di ricezione/invio e la pulizia delle risorse per tutta la vita dell'applicazione; il termine di configurazione in questo schema non è una politica completa per ogni messaggio successivo.